docker之数据卷volume
文章目录1、容器与宿主机2、容器与容器之间1、容器与宿主机首先找到docker的工作目录:/var/lib/dockervolumes目录下启动一个tomcat容器docker run -d -p 8080:8080 -v tomcat:/user/local/tomcat/webapps --name tomcat_volume tomcat1、如果使用的数据卷不存在,也就是/var/lib/d
1、容器与宿主机
首先找到docker的工作目录:/var/lib/docker
volumes目录下
启动一个tomcat容器
docker run -d -p 8080:8080 -v tomcat:/user/local/tomcat/webapps --name tomcat_volume tomcat
1、如果使用的数据卷不存在,也就是/var/lib/docker/volumes没有tomcat会自动创建
将容器内部/user/local/tomcat/webapps
挂载到docker工作目录(也就是/var/lib/docker/volumes)
现在再看一下volumes目录
是在_data目录下进行映射的
原本不使用数据卷启动tomcat容器后的webapps下应该是有这些东西的
启动的时候使用了数据卷,会把容器中对应目录的数据清除(因为volumes下没有tomcat目录)
2、如果使用的数据卷已经存在,那么会直接把数据映射到容器对应的路径下
启动容器之前创建好
docker volume xx
docker volume create test
:创建test数据卷,其实就是在docker工作目录volumes下创建一个test目录,并在里面在创建一个_data空目录
在启动容器前在_data下创建好文件:创建一个ROOT目录并在里面创建一个index.html文件
重新启动一个新的tomcat容器:
直接将创建好的容器卷下_data中的文件映射到容器内对应路径下
2、容器与容器之间
同样是使用数据卷
首先启动第一个容器并使用数据卷
docker run -d --name tomcat01 -v test:/user/local/tomcat/webapps tomcat
启动第二个容器时使用–volumes-from xxx共享数据卷
docker run -d --name tomcat02 -v test:/user/local/tomcat/webapps tomcat
此时两个容器使用同一个数据卷test(对应容器内/user/local/tomcat/webapps目录)
在test卷中添加一个文件
进入tomcat01容器查看
进入tomcat02查看
两个容器共享数据卷,如果在tomcat01中挂载了多个数据卷,启动tomcat2时使用了--volumes-from tomcat02
tomcat2会共享tomcat01中的数据卷
如果将tomcat01删除tomcat02中的仍然会共享数据卷,数据不会消失
更多推荐
所有评论(0)