1、数据卷
(1)数据卷是目录或文件,而不是没有格式化的块设备
(2)容器可以读取数据卷中的数据
(3)数据卷中的数据可以被永久保存,即使容器被销毁
-v 创建容器中的卷
[root@localhost ~]# docker run -it -v /web --rm busybox /bin/sh
将容器中的卷挂载到宿主机中
[root@localhost ~]# docker run -it --rm -v /opt/test:/web busybox /bin/sh
测试:
[root@localhost ~]# cp /etc/hosts /opt/test/
/ # ls /web/
hosts
2、数据卷容器
在容器之间共享数据,专门用它作为其他容器挂载使用
--volumes-from 挂载容器中卷
创建容器卷 dbser
[root@localhost ~]# docker run -it -v /root/test:/dbdata --name dbser centos:6
[root@a8a90048bc5d /]# [root@localhost ~]#
dbser ------ db1 db2 db3
(dbser)db3 ------- db4
[root@localhost ~]# docker run -itd --volumes-from dbser --name db1 centos:6
d2101b17f31210582632e424676dc0972d7dbabd4cb2e70fe14f7ff35d122906
[root@localhost ~]# docker run -itd --volumes-from dbser --name db2 centos:6
d2f0dba33fd130b7655e63f3553d2b5cdeb3183851257561e4eb22178076804d
[root@localhost ~]# docker run -itd --volumes-from dbser --name db3 centos:6
99099b712471c2848dcbda8f70d387ae6c70efc28c59a030d43e74e4c060e2a3
[root@localhost ~]# docker run -itd --volumes-from db3 --name db4 centos:6
baaf8ed1c8b5d9b72f296fd5a4a4b81371e032d3782c3fbdd8d38f7d97a42d3d
测试: 将hosts文件 复制到容器卷目录 /root/test
[root@localhost ~]# cp /etc/hosts /root/test
[root@localhost ~]# cp /etc/hosts /root/test
[root@localhost ~]# docker exec -it db3 /bin/bash
[root@99099b712471 /]# ls /dbdata/
hosts
反向测试:
[root@99099b712471 /]# echo 123 > /dbdata/1.txt
[root@localhost ~]# cat /root/test/1.txt
123
删除容器卷,其他容器中数据不会丢失
[root@localhost ~]# docker rm -f dbser db1 db2
dbser
db1
db2
[root@localhost ~]# docker exec -it db3 ls /dbdata
1.txt hosts
-v 彻底删除容器卷
[root@localhost ~]# docker rm -f -v db3
db3