Linux中的Docker容器的数据卷

本文介绍了Docker容器数据卷的概念,包括其作为数据持久化、外部通信和容器间数据交换的手段。详细阐述了如何配置数据卷,通过实战示例展示了创建、挂载数据卷以及使用数据卷容器进行多容器数据交换的过程。

一、数据卷的概念

1.数据卷是宿主机中的一个目录或者文件

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

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

4.一个容器也可以挂载多个数据卷

二、数据卷的作用

容器数据持久化;外部机器和容器间接通信;容器之间数据交换

三、Docker容器配置数据卷

创建启动容器时,使用-v参数设置数据卷

docker run ... -v 宿主机目录(文件):容器内目录(文件)

注意事项:

1.目录必须是绝对目录

2.如果目录不存在,会自动创建

3.可以挂载多个数据卷

四、Docker容器配置数据卷实战

例如当前存在centos 7的镜像文件,创建并启动该容器时,如果想设置数据卷可以采用下述命令:

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

查看容器c1里面/root目录下面的结构:

查看宿主机/root目录下面的结构:

1.宿主机的数据卷目录创建新文件

在宿主机中的/root/data目录下创建a.txt文件后,如下图所示:

接着会发现在容器c1的/root/data_container目录下也多了这么一个文件,如下图所示:

2.容器的数据卷目录文件中追加内容

往容器c1的/root/data_container目录下的a.txt文件中追加内容:

echo "123456" > a.txt

接着会发现在宿主机中的/root/data目录下的a.txt文件中也会多了这么一段内容:

3.一个容器挂载多个数据卷目录

docker run -it --name=c1 -v /root/data2:/root/data2 -v /root/data3:/root/data3

4.两个容器挂载同一个数据卷目录

docker run -it --name=c3 -v ~/data:/root/data centos:7
docker run -it --name=c4 -v ~/data:/root/data centos:7

五、Docker数据卷容器

多容器进行数据交换还可以使用另外一种途径:数据卷容器

如何配置数据卷容器?

第一步:创建并启动c3数据卷容器,使用-v参数设置数据卷

docker run -it --name=c3 -v /volume centos:7 /bin/bash

此处有一个细节部分就是上述命令设置数据卷目录时,只设置了/volume目录,这个是属于容器的目录,左边部分的目录(宿主机的目录)没有设置。用这种方式时,docker会在宿主机上自动分配一个目录当作数据卷。

接着再开启一个终端,使用docker inspect c3命令查看容器的挂载情况,可以看到docker已自动在宿主机上分配了一个挂载目录:

第二步:创建启动c1容器,使用--volumes-from参数设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash

创建启动c2容器,使用--volumes-from参数设置数据卷 

docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

此时,我们在容器c3的/volume目录中做相应的操作,容器c1和容器c2的/volume也会跟着发生相应的变化。

特别提示:即使有一天将c3容器(数据卷容器)删除或者该容器停止,c1和c2之间仍然可以进行数据交换

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值