filezilla 共享多个目录_如何通过Volume实现Docker容器间共享同一份数据

概述:

在Docker容器上可能部署多台容器,这些容器的数据文件又都是一样的,如果其中一个文件更改,如果不采用共享数据的方式,那基本每一个容器的文件都要改一次,工作量非常大,所以,实现容器间的数据共享成了必须要做的事情

9531c1b9b9ed2a6a87ad43c52ef72043.png

数据共享原理:

在宿主机上开辟一块空间,这个空间会被其他的容器同时进行共享,也就是在容器的内部,

我们不再持有这些数据文件,数据文件都存储在宿主机上某个硬盘,之后通过Docker环境

实现多个容器之间读取同一份文件

cd4770fdfbdf8f4df65892bb8084df0b.png

实现数据共享方式有两种

一、通过設置-v挂载宿主机目录

格式:docker run --name 容器名 -v 宿主机路径:容器内挂载路径 镜像名

实例:docker run --name t1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat

步骤演示:

1、在我本地D:dockerwebappsvolume-test下面创建一个index.html

93b1ac030c3e4f36d7cac4e8dc6216fb.png

2、在宿主机上的/usr/目录下创建一个webapps

0aedfd5649303517b7938ed0f312dbee.png

3、将第一步创建的volume-test上传到宿主机/usr/webapps目录下

f87c290e56ec61226d9baf6b501de0ca.png

4、创建一个tomcat容器,并将tomcat容器内部的/usr/local/tomcat/webapps挂载点挂在了/usr/webapps上

docker run --name t1 -p 8000:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat
c3675e0a7bb56b3e751c33cf12ce46ae.png

5、进入到tomcat容器内部查看挂载的信息,可以看到 /usr/webapps下面的volume-test已经挂载了进来

003445d44c9bd7e4538577f6d6f72ae1.png

6、访问该http://192.168.18.132:8000/volume-test/index.html

4e63cf9937efad38449230e1b315407f.png

7、直接改变宿主机 /usr/webapps/volume-test/下面的index.html

d7a6b7b95c36e1788581827fdebd7eb9.png

8、再重新访问http://192.168.18.132:8000/volume-test/index.html

f32fd1461110fa497f94af8db1b32651.png

可以看到容器已经是共享了宿主机的文件数据了

9、再创建一个tomcat容器t2挂载同一个目录 /usr/webapps

docker run --name t2 -p 8001:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat

10、访问http://192.168.18.132:8001/volume-test/index.html

dddce610091082aa265d77c9bb5d6dac.png

可以看到容器间共享同一份数据(宿主机上的同一份)已经成功

二、通过--volumes-from 共享容器内挂载点

创建共享容器:docker create --name webpage -v /webapps:/tomcat/webapps tomcat /bin/true共享容器挂载点:docker run --volumes-from webpage --name t1 -d tomcat

步骤演示:

1、创建共享容器設置好挂载点 如下

docker create --name webpage -v /usr/webapps:/usr/local/tomcat/webapps tomcat /bin/true
e250a6bb5858efa4fec5f4ced6cb1f50.png

注:上面我们只是创建容器

2、创建tomcat容器t3指向共享容器,并启动容器

docker run -p 8002:8080 --volumes-from webpage --name t3 -d tomcat
84e6270010006a734c651745eb82fa5c.png

3、进入到该t3容器里面查看信息

c845c41a4c376ca3a5b8c32543f8d2d0.png

4、访问该容器的文件http://192.168.18.132:8002/volume-test/index.html

444b7e26e1908cd5dbf3832e291b435c.png

可以看到已经成功挂载,这个时候直接改变宿主机文件,所有容器对应的文件都会改变,因为他们都是共享宿主机的同一份文件来的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值