配置docker容器数据卷

本文介绍了Docker中数据卷的使用,包括如何配置容器的数据卷,容器挂载多个数据卷以及数据卷容器的创建和使用。通过数据卷,可以实现容器内的目录与宿主机的目录绑定,实现数据的持久化和多个容器间的共享。示例中展示了挂载过程及验证数据同步的效果。
摘要由CSDN通过智能技术生成

(概要)数据卷是宿主机中的一个目录或文件

• 当容器目录和数据卷目录绑定后,对方的修改会立即同步

• 一个数据卷可以被多个容器同时挂载

• 一个容器也可以被挂载多个数据卷

一、配置容器的数据卷

以centos7创建容器为例,先拉取centos7镜像

[root@localhost ~]# docker pull centos:7

查看镜像

创建容器c1,并且给容器挂载数据卷

docker run -it --name=c1 -v /root/data_container:/root/data centos:7 /bin/bash

通过“-v”参数,把容器内目录挂载到宿主机上,左边 /root/data_container 就是宿主机的目录,右边 /root/data 就是容器挂载的目录

创建好后就进入到了容器内部,通过ls命令查看,发现已存在一个data目录

退出回到宿主机,查看发现也已创建data_container目录

进去这个目录,在里面创建个txt文件

此时再进入容器查看。因为刚才是用“-it”参数创建的,所以退出容器后容器会自动关闭,要先启动容器,然后再进去查看

查看发现,刚才在宿主机目录下创建的文件也已经出现在容器目录上

 同样地在容器目录下也创建个txt文件

退出容器回到宿主机,查看发现text01.txt文件也已存在宿主机上

通过 “docker inspect” 命令查看容器详细信息,在信息里面找到Binds和Mounts可以查看对应的挂载信息

二、容器挂载多个数据卷

 新创建一个容器c2,让他挂载两个数据卷

docker run -it --name=c2 -v /root/data_container:/root/data -v /root/data_container01:/root/data01 centos:7 /bin/bash

在第一个“-v”参数中,c2容器挂载到了刚才上面c1容器的数据卷宿主机目录。第二个“-v”参数中,新建数据卷挂载到宿主机 /root/data_container01 目录下

创建好容器后,查看容器

 发现已经有对应的数据卷目录。并且查看data目录会发现刚才c1容器创建的两个txt文件也存在,说明数据卷能够被多个容器挂载

退出容器回到宿主机,查看发现也已经多了个data_container01目录

 先进去data_container目录,再创建一个txt文件

再切换到data_container01目录,也创建一个txt文件

 从新进入容器c2

切换到data目录下,查看目录

再切换到data01目录,发现text03.txt文件也已存在

三、数据卷容器

创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。

先创建一个容器cv1,让其作为数据卷容器

docker run -id --name=cv1 -v /root/volume centos:7 /bin/bash

这次“-v”参数后面跟的内容不一样,这个是指定了挂载cv1容器作为数据卷的容器的挂载目录

创建好后cv1后,通过 “docker inspect” 命令查看cv1的详细信息

找到Mounts这一行,在下面可以看到source详情,这里指明了作为数据卷容器的cv1在宿主机下的挂载目录

然后再创建一个容器cv2,让其挂载到容器cv1

docker run -it --name=cv2 --volumes-from cv1 centos:7 /bin/bash

 用“--volumes-from”参数指定要挂载的数据卷容器

创建好cv2后,进入 /root 目录查看

 查看发现已经有对应的挂载目录出现

切换到 /volume 目录下,创建一个txt文件

退出cv2回到宿主机,查看刚才的cv1容器详情下的Mounts下面的source的目录地址 

发现刚才在cv2下创建的txt文件已经存在

再创建一个容器cv3,让其也挂载cv1容器

docker run -it --name=cv3 --volumes-from cv1 centos:7 /bin/bash

创建好后进入 /root 目录下,查看发现也已存在对应的挂载目录。切换到 /volume 目录下查看,cv2容器下创建的txt文件也已存在

在cv3中也创建一个txt文件

退出cv3,查看cv1在宿主机下的挂载目录。发现在cv3下创建的txt文件也已经存在

从新进入cv2容器,查看挂载目录。发现cv3创建的txt文件也有存在

由此说明数据卷容器也能被多个容器挂载,共享同一个存储空间

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值