如下图所示:该图中c3就是数据卷容器
配置数据卷容器
1 启动数据卷容器c3
1.创建启动c3数据卷容器,使用-v参数设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
centos:7
如果在/volume左边不去设置目录的话,docker会自动分配一个目录
#删除5中创建的容器
[root@localhost ~]# docker rm c1 c2
c1
c2
[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[root@localhost ~]# docker run -it --name=c3 -v /volume --privileged=true centos
[root@7048bbaeb3b5 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume
[root@7048bbaeb3b5 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume
[root@7048bbaeb3b5 /]# cd volume/
[root@7048bbaeb3b5 volume]# touch a.txt
[root@7048bbaeb3b5 volume]# ls
a.txt
[root@7048bbaeb3b5 volume]#
查看在/volume左边没有设置目录时,docker自动分配一个目录位置,其中的Source后面的就是分配的文件目录
[root@localhost data]# docker inspect c3
[
{
。。。
"Mounts": [
{
"Type": "volume",
"Name": "560f3cc339081441d036312d6ed78d4649e1d754c16e2878ca3c2fbe7d096859",
"Source": "/var/lib/docker/volumes/560f3cc339081441d036312d6ed78d4649e1d754c16e2878ca3c2fbe7d096859/_data",
"Destination": "/volume",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
。。。。
]
[root@localhost data]#
2 创建启动c1 c2容器
2.创建启动c1 c2容器,使用–volumes-from参数设置数据卷
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash
下面的还是一个加上–privileged=true ,方便对容器里面进行操作(我是因为忘记了,不过效果没有问题,我也就不改了)
控制台1执行
[root@localhost data]# docker run -it --name=c1 --volumes-from c3 centos
[root@41b97000dde8 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume
[root@41b97000dde8 /]# cd volume/
[root@41b97000dde8 volume]# ls
a.txt
[root@41b97000dde8 volume]#
控制台2执行
[root@localhost ~]# docker run -it --name=c2 --volumes-from c3 centos
[root@1f3e008ee9a3 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume
[root@1f3e008ee9a3 /]# cd volume/
[root@1f3e008ee9a3 volume]# ls
a.txt
[root@1f3e008ee9a3 volume]#
现在查看容器的元数据,可以发现挂载是成功了的:
[root@localhost data]# docker inspect c3
....
[root@localhost data]#
数据卷总结
数据卷就是宿主机中的一个目录或文件,只是对这些与容器进行了挂载
数据卷作用
- 容器数据持久化
- 客户端和容器数据交换。
- 容器间数据交换
数据卷容器
-
创建一个容器,挂载一个目录,让其他容器继承自该容器(–volume-from )。通
-
过简单方式实现数据卷配置