0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是数据卷与数据卷容器

汽车电子技术 来源:码农与软件时代 作者:码农与软件时代 2023-02-20 15:44 次阅读

容器可以承载微服务,也可以承载数据库,微服务的配置文件,数据库的数据文件,都需要持久化,也就是即使容器销毁了,这些数据也需要存在。

一方面可以釆用手工方式用命令行拷贝,在容器很多的情况下,是不可取的。另一方面可以自动保存到宿主机或者远程存储上。

容器中将用于存储的文件目录称为卷(Volume),可见容器的存储便是对目录的操作。

可以直接将容器目录映射到主机目录,称为数据卷;也可以构建专门挂载数据卷的容器,称为数据卷容器。

1. docker cp命令

首先启动名称为dockervolumtest1的ubuntu环境,并以/bin/bash方式进入到容器。

root@linux:/home# docker run -it --name="dockervolumtest1" ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
125a6e411906: Pull complete 
Digest: sha256:26c68657ccce2cb0a31b330cb0be2b5e108d467f641c62e13ab40cbec258c68d
Status: Downloaded newer image for ubuntu:latest
root@51d152e09898:/# 进入到容器

再新建dockerdata1.log作为测试文件。

root@51d152e09898:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@51d152e09898:/# cd tmp
root@51d152e09898:/tmp# ls
root@51d152e09898:/tmp# touch dockerdata1.log
root@51d152e09898:/tmp# echo this is docker data test > dockerdata1.log 
root@51d152e09898:/tmp# cat dockerdata1.log 
this is docker data test
root@51d152e09898:/tmp#

使用docker cp命令在主机和容器进行数据拷贝。

命令格式:

docker cp 容器ID:/目录 主机目录
root@linux:/# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
51d152e09898   ubuntu    "/bin/bash"   4 minutes ago   Up 4 minutes             dockervolumtest1
root@linux:/# docker cp 51d152e09898:/tmp /
root@linux:/# cd tmp
root@linux:/tmp# ls
dockerdata1.log
root@linux:/tmp# cat dockerdata1.log 
this is docker data test
root@linux:/tmp#

2. 数据卷

使用docker run命令,并指定-v选项,便可在启动容器的时挂载数据卷;

命令格式1:

docker run -v /宿主机路径:容器内路径 镜像名
# 如指定的目录不存在,系统会自动创建
root@linux:/home# docker run -it --name="volummnttest1" -v /tmp/hostdir:/tmp/dockerdir ubuntu /bin/bash 
root@ae1b5eda679d:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
# 新建测试文件volum.log
root@ae1b5eda679d:/# cd /tmp/dockerdir/
root@ae1b5eda679d:/tmp/dockerdir# ls
root@ae1b5eda679d:/tmp/dockerdir# touch volum.log
root@ae1b5eda679d:/tmp/dockerdir# echo this is a volum test > volum.log 
root@ae1b5eda679d:/tmp/dockerdir#

新建命令窗口,查看Host宿主机的文件信息

root@linux:/tmp/hostdir# ll
total 12
drwxr-xr-x  2 root root 4096 May 12 17:12 ./
drwxrwxrwt 16 root root 4096 May 12 17:11 ../
-rw-r--r--  1 root root   21 May 12 17:13 volum.log
root@linux:/tmp/hostdir# cat volum.log 
this is a volum test
root@linux:/tmp/hostdir#

命令格式2:docker run -v 容器内路径 镜像名

# 不指定主机目录,系统会默认存储在/var/lib/docker/volumes/容器ID目录
root@linux:/tmp/hostdir# docker run -it --name="volummnttest2" -v /tmp/dockerdir2 ubuntu /bin/bash
root@cf7f42544b8f:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@cf7f42544b8f:/# cd /tmp/
root@cf7f42544b8f:/tmp# ls
dockerdir2
root@cf7f42544b8f:/tmp#

新建命令窗口,查看volum2.log的相关信息:

root@linux:/# cd /var/lib/docker/
root@linux:/var/lib/docker# ls
buildkit  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes
root@linux:/var/lib/docker# cd volumes/
root@linux:/var/lib/docker/volumes# ls
9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b  backingFsBlockDev  metadata.db
root@linux:/var/lib/docker/volumes# cd 9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b/
root@linux:/var/lib/docker/volumes/9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b# ls
_data
root@linux:/var/lib/docker/volumes/9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b# cd _data/
root@linux:/var/lib/docker/volumes/9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b/_data# ls
volum2.log
root@linux:/var/lib/docker/volumes/9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b/_data# cat volum2.log 
this is for volum2 test
root@linux:/var/lib/docker/volumes/9c8c17797ea4efdee595d1eea56ea39906b4879fd150a17e5312dc5c6c62851b/_data#

也可通过docker inspect 容器ID,查看详情

3. 数据卷容器

首先启动容器volumedockertest

root@linux:/# docker run -it --name="volumedockertest" -v volumebase:/tmp/volumbasedata ubuntu /bin/bash
root@2933ebe42b98:/# ls
bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@2933ebe42b98:/# cd tmp
root@2933ebe42b98:/tmp# ll
total 12
drwxrwxrwt 1 root root 4096 May 12 09:50 ./
drwxr-xr-x 1 root root 4096 May 12 09:50 ../
drwxr-xr-x 2 root root 4096 May 12 09:50 volumbasedata/

再启动容器volumedockertest1,使用--volumes-from参数继承的volumedockertest数据卷。

root@linux:/# docker run -it --name="volumedockertest1" --volumes-from volumedockertest ubuntu /bin/bash
root@9ee901a1d422:/# ls

新建测试文件:

root@9ee901a1d422:/tmp/volumbasedata# echo this is test add data > basedata.log 
root@9ee901a1d422:/tmp/volumbasedata#

宿主机查看文件

root@linux:~# cat /var/lib/docker/volumes/volumebase/_data/basedata.log 
this is test add data
root@linux:~#
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3750

    浏览量

    64207
  • 容器
    +关注

    关注

    0

    文章

    492

    浏览量

    22025
  • 微服务
    +关注

    关注

    0

    文章

    131

    浏览量

    7321
收藏 人收藏

    评论

    相关推荐

    深圳打孔机系统,CCD双头打孔提高生产效率

    技术中的打孔机在实际使用过程中具有很多的缺陷,例如:现有技术中公开的打孔机一般设置有一个打孔器,打孔器安装在能够垂直于带传送方向的移进机构上,通过传动机构将膜带传送至打孔位,
    发表于 05-08 10:17

    深圳对位系统,对点对色准确,提高设备印刷品质

    印刷机是特印设备中的一个种类,广泛应用于工业用品及塑胶、玻璃、金属片、陶瓷片、电子板等等。丝印原理是通过丝(网)印刷的技术,将特定图案印刷到既定材料表面。现已成为表面特种印刷或装饰的一种方式
    发表于 07-20 14:03

    深圳对位系统怎么样呢?

    深圳印刷机是特印设备中的一个种类,广泛应用于工业用品及塑胶、玻璃、金属片、陶瓷片、电子板等等。丝印原理是通过丝(网)印刷的技术,将特定图案印刷到既定材料表面。现已成为表面特种印刷或装饰的一种
    发表于 09-08 15:59

    深圳CCD双头打孔机系统有什么特点?

    如今越来越多的企业引进全自动打孔机作为定位孔加工的专用设备,取代传统多人员操作设备,大大节省成本开支,提高了产品的质量,加快生产速度,减少了报废率,提高了企业的市场竞争力,是很多企业密而不宣
    发表于 10-14 14:21

    计算机程序设计艺术 (含第1,第2,第3 基本算法)

    计算机程序设计艺术 (含第1,第2,第3 基本算法)是国内外业界广泛关注的7本《计算机程序设计艺术》第1的最新版,以基本的程序设计
    发表于 10-24 13:50 0次下载
    计算机程序设计艺术 (含第1<b class='flag-5'>卷</b>,第2<b class='flag-5'>卷</b>,第3<b class='flag-5'>卷</b> 基本算法)

    制造的薄膜型非晶硅太阳能电池

    制造的薄膜型非晶硅太阳能电池       TDK在“CEATEC JAPAN 2009”上参考展出了可采用(
    发表于 01-13 09:14 1707次阅读

    技术曝光:TRADIM的液晶面板构件

    技术曝光:TRADIM的液晶面板构件    日本新一代移动显示材料技术研究组合(TRADIM)在利用薄膜底板上形成的液晶面板构件,以方式连续组装TFT液晶面板的
    发表于 04-24 13:54 1242次阅读
    技术曝光:TRADIM的<b class='flag-5'>卷</b>对<b class='flag-5'>卷</b>液晶面板构件

    工程制图A答案

    工程制图A答案,大学二年级工程制图A答案
    发表于 02-29 17:10 26次下载

    Cyclone 器件数据手册(第一

    一共有2,分批上传。这是Cyclone 器件数据手册(第一),感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-10 14:20 4次下载

    Cyclone器件数据手册(第二

    一共有2,分批上传。这是Cyclone 器件数据手册(第二),感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-10 14:20 2次下载

    【存储数据恢复】H3C FlexStorage存储删除的数据恢复案例

    H3C FlexStorage某型号存储,25块磁盘组建的RAID5,其中包含一块热备盘。 工作人员误操作将存储设备中原先的2个删除,删除之后又使用和删除2个同样大小的空间重建了一个。用户希望恢复删除的2个
    的头像 发表于 05-15 15:16 839次阅读
    【存储<b class='flag-5'>数据</b>恢复】H3C FlexStorage存储<b class='flag-5'>卷</b>删除的<b class='flag-5'>数据</b>恢复案例

    针形状对芯质量的影响

    锂电池芯的卷绕过程一般是先用两针夹紧两层隔膜进行预,然后依次送入正极片或负极片,极片分别夹在两层隔膜之间进行卷绕。
    的头像 发表于 06-01 15:05 1568次阅读
    <b class='flag-5'>卷</b>针形状对<b class='flag-5'>卷</b>芯质量的影响

    卷烟厂包车间数据采集远程监控系统

    在工业化和信息化的两化融合潮流中,烟草制造业成为企业高质量发展的重要技术支撑,其中接包数据采集便是重要内容之一。通过对接包装设备的数据采集,适合设备
    的头像 发表于 06-01 15:32 576次阅读
    卷烟厂<b class='flag-5'>卷</b>包车间<b class='flag-5'>数据</b>采集远程监控系统

    服务器数据恢复—存储中被删除后重建如何恢复被删除数据

    服务器存储数据恢复环境: 某品牌FlexStorage P5730服务器存储,存储中有一组由24块硬盘组建的RAID5阵列,包括1块热备硬盘。 服务器存储故障: 存储中的2个被删除,删除之后重建了一个新。需要恢复之
    的头像 发表于 06-05 11:03 551次阅读

    服务器数据恢复—OceanStor存储中数据丢失的数据恢复案例

    华为OceanStor某型号存储。工作人员在上传数据时发现该存储上一个NAS数据丢失,管理员随即关闭系统应用,停止上传数据。这个丢失数据
    的头像 发表于 06-14 13:42 192次阅读
    服务器<b class='flag-5'>数据</b>恢复—OceanStor存储中<b class='flag-5'>卷</b><b class='flag-5'>数据</b>丢失的<b class='flag-5'>数据</b>恢复案例