docker之数据卷volume

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 tomcat02tomcat2会共享tomcat01中的数据卷

如果将tomcat01删除tomcat02中的仍然会共享数据卷,数据不会消失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值