docker之容器数据持久化
1.挂载本地目录为容器的数据存放目录
[root@node03 ~]# docker run -itd --name web01 -v /container_data/web:/data ubuntu
[root@node03 ~]# docker inspect web01
2.到挂载的目录下面创建一个文件
[root@node03 ~]# cd /container_data/web/
[root@node03 web]# ls
[root@node03 web]# touch test.index
3、查看web01容器下面的data目录是否存在刚才创建的文件
[root@node03 ~]# docker exec web01 ls /data
4、在创建一个web02 的容器,也挂载相同的目录,看看刚才的文件是否还存在
[root@node03 ~]# docker run -itd --name web02 -v /container_data/web:/data ubuntu
二、 容器 数据卷
创建一个dvdata的数据卷容器:
[root@node03 ~]# docker run -itd -v /data --name dvdata ubuntu
注:/data是数据卷容器内共享的目录
在其他容器中挂载dvdata容器的数据卷:
[root@node03 ~]# docker run -itd --name web01 --volumes-from dvdata ubuntu
分别进入web1、web2容器中,会有一个/data目录,在web1里的/data目录创建文件,web2也能看的到。
总结: 如果删除dvdata、web1、web2,时,数据卷并不会被自动删除。如果想删除需在删除最后一个挂载着它的容器时使用docker rm -v 命令来指定删除关联的容器。
[root@node03 ~]# docker exec dvdata touch /data/index.php
[root@node03 ~]# docker exec dvdata ls /data
index.php
[root@node03 ~]# docker exec web01 ls /data
index.php
[root@node03 ~]# docker run -itd --name web02 --volumes-from dvdata ubuntu
a0afc3cbf251af427eea2ca89ae94c07dcb537643414830405e805d1ea6be962
[root@node03 ~]# docker exec web02 ls /data
index.php