docker -v 挂载文件_如何通过Volume实现Docker容器间共享同一份数据

本文介绍了如何通过Docker的-v挂载和--volumes-from选项实现在不同容器间共享数据。详细步骤包括挂载宿主机目录到容器,创建共享容器并引导其他容器挂载相同数据,确保所有容器可以访问和同步同一份宿主机文件。
摘要由CSDN通过智能技术生成

概述:

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

0ca1d5aafaf80262ca8de65923837b65.png

数据共享原理:

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

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

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

3c472653c13d50b5330584934261a10b.png

实现数据共享方式有两种

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

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

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

步骤演示:

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

5226440082eeb2ce775b8606cdd1aab8.png

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

4da75c45b90779b9f48ce868e6c5d873.png

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

90c35bfbe8644eb9ebea85819e3aa927.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
418a5d7f7328f71b3ad8bac110924e3a.png

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

2645a1b2583e3271e51b65977561dde2.png

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

cfff22d324d6ea41607074e60736cb44.png

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

c2c2b7293380a3ad459f2bce8e063029.png

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

83526d49dd68dae05ab6b3e27743b94e.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

a50ce642dd3f5c97ea63a642f2785c3c.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
1ce07bc536b71eaf5571b3220b0d6c21.png

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

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

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

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

ffa33a96ff7e223b50664ab46200fa3c.png

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

a9395b0df2aa437258a3b250adc1af71.png

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值