2° 容器可以读写 volume 中的数据。
3° volume 数据可以被永久的保存,即使使用它的容器已经销毁。
Data Volume的使用:
1° 运行一个容器,并创建一个数据卷挂载到容器的目录上
[root@localhost ~]# docker run -dti -v /web centos:latest /bin/bash
d4e002045c2bd022a826dbd2805b121dd43c41443d86eeb6515f616bf52c8549
2° 运行一个容器,本地创建/date目录挂载到容器的/var/log/目录上
[root@localhost ~]# docker run -dti -v /data:/var/log centos:latest /bin/bash 25773c239584614e301644db01b7275377887c9bbefe8c54cf5cd6be2917ab54
DataVolumeDontainers的使用:
1° 创建一个名为 dbdata 的数据卷,并在其中创建一个数据卷挂载到 /dbdata
--name 参数为容器指定名字方便记忆
[root@localhost ~]# docker run -dti -v /dbdata --name dbser centos:latest 82b264b29e56700afebaa7acec8c69309964f27dafd271454048b8b7a113720e
2.其他容器使用--volume-from 去挂载dbdata容器中的/dbdata数据卷
创建db1和db2两个容器,并挂载/dbdata数据卷到本地
[root@localhost ~]# docker run -dti --volumes-from dbser --name db1 centos:latest 893450737adee5a2673feef72bf3239ff7b1b3cf1d284de098da405e8fe86e64 [root@localhost ~]# docker run -dti --volumes-from dbser --name db2 centos:latest aff1e64343bf339b32c81c7b1ed3baef84a724b35faa160ea0a9d3a54ae65577
此时,容器 db1 和 db2 同时挂载了同一个数据卷到本地相同 /dbdata目录。三个容器任何一个目录下的写入,都可以时时同步到另外两个。
[root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES aff1e64343bf centos:latest "/bin/bash" 4 minutes ago Up 4 minutes db2 893450737ade centos:latest "/bin/bash" 4 minutes ago Up 4 minutes db1 82b264b29e56 centos:latest "/bin/bash" 6 minutes ago Up 6 minutes dbser 在db2中创建jam文件,写入0330 [root@localhost ~]# docker exec -it aff1e64343bf /bin/bash [root@aff1e64343bf dbdata]# echo "0330" >jam [root@aff1e64343bf dbdata]# cat jam 0330 在db1中查看是否存在jam文件 [root@localhost ~]# docker exec -it 893450737ade /bin/bash [root@893450737ade /]# cd dbdata/ [root@893450737ade dbdata]# ls jam [root@893450737ade dbdata]# cat jam 0330 在dbser中查看jam文件是否存在 [root@localhost ~]# docker exec -it 82b264b29e56 /bin/bash [root@82b264b29e56 /]# ls dbdata [root@82b264b29e56 /]# cd dbdata/ [root@82b264b29e56 dbdata]# ls jam [root@82b264b29e56 dbdata]# cat jam 0330
原文:https://www.cnblogs.com/daisyyang/p/11046948.html