在实际使用过程当中,咱们可能会常常遇到容器间数据共享的状况,怎么处理呢?经过 docker 命令中的一些选项,咱们便可完成容器间的数据共享。docker
容器一:gysl-1bash
[root@dev ~]# docker run -it --rm --name gysl-1 -v /data-1 alpine
容器二:gysl-2ide
[root@dev ~]# docker run -it --rm --volumes-from gysl-1 --name gysl-2 alpine
在容器gysl-1建立文件:gysl-1.txtspa
/ # cd data-1/ /data-1 # touch gysl-1.txt
在容器gysl-2建立文件:gysl-2.txt3d
/ # cd data-1/ /data-1 # touch gysl-2.txt
分别在两个容器查看:code
/data-1 # ls -lh total 0 -rw-r--r-- 1 root root 0 Jan 10 18:45 gysl-1.txt -rw-r--r-- 1 root root 0 Jan 10 18:47 gysl-2.txt
两个容器的data-1目录下的内容彻底一致。rem
3.1 当一个容器的volume被其余容器共享时,其余容器是不须要建立共享目录的,共享目录会在其余容器内被自动建立,与被共享容器的目录名称一致。it
3.2 一个容器的volume能够被多个容器同时共享。ast
3.3 当容器被删除时,volume不会被自动删除。若是数据不会再次被使用,那么能够经过手动来删除已经废弃的volume,命令以下:class
[root@dev ~]# docker volume ls DRIVER VOLUME NAME local 8126b3ad828a9a7e29ec04f4d7a1901be5e40ca6157fde62dca3421322e5de7a local bf80e1eb66685161cb6bf6943079de4a68a7bc3db3bba241347ed051fe59fc46 [root@dev ~]# docker volume prune WARNING! This will remove all volumes not used by at least one container. Are you sure you want to continue? [y/N] y Total reclaimed space: 0 B
也能够:
docker volume rm volume_name
还能够(在删除容器的同时强制删除volume):
docker rm -vf container_name