数据卷
- 语法
-v src:dst - docker创建数据卷容器并映射到物理主机目录(docker创建映射关系)
启动容器
查找容器创建的数据卷对应物理主机目录[root@docker scripts]# docker run -it --name volume-test1 -h host1 -v /data centos [root@host1 /]# ls bin data dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var
可看到:docker中的/data对应物理主机中的:/var/lib/docker/volumes/7a7442d1a78c56576899a8022971c33c0cafbaa75798644a8383ae8766ac6f16/_data 目录[root@docker ~]# docker inspect -f {{.Mounts}} volume-test1 [{volume 7a7442d1a78c56576899a8022971c33c0cafbaa75798644a8383ae8766ac6f16 /var/lib/docker/volumes/7a7442d1a78c56576899a8022971c33c0cafbaa75798644a8383ae8766ac6f16/_data /data local true }]
测试-docker创建目录
测试-物理主机创建目录#docker容器操作 [root@host1 /]# cd data/ [root@host1 data]# mkdir test [root@host1 data]# ls test #物理主机查看 [root@docker ~]# cd /var/lib/docker/volumes/7a7442d1a78c56576899a8022971c33c0cafbaa75798644a8383ae8766ac6f16/_data [root@docker _data]# ll total 0 drwxr-xr-x 2 root root 6 Dec 7 14:39 test
#物理主机操作 [root@docker _data]# cd /var/lib/docker/volumes/7a7442d1a78c56576899a8022971c33c0cafbaa75798644a8383ae8766ac6f16/_data [root@docker _data]# echo "test2" >test2 [root@docker _data]# cat test2 test2 #docker中查看 [root@host1 data]# cat test2 test2
- 指定物理主机目录,挂载到docker容器中
物理主机目录
docker创建容器并将物理主机的/opt目录挂载到docker目录/opt中[root@docker opt]# cd /opt/ [root@docker opt]# ls 10001 10002 10003 10004
[root@docker scripts]# docker run -it --name volume-test2 -h host2 -v /opt:/opt centos [root@host2 /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@host2 /]# cd opt/ [root@host2 opt]# ls 10001 10002 10003 10004
数据卷容器
- 语法
–volumes-from - docker数据卷目录从其他docker数据卷容器(该容器可不运行)中读取
[root@docker scripts]# docker run -it -h host3 --name volumes-test3 --volumes-from volume-test2 centos [root@host3 /]# cd /opt/ [root@host3 opt]# ls 10001 10002 10003 10004 10005