Docker(五)、容器间数据共享~volume

一、简单了解

容器间数据共享简图:
在这里插入图片描述

容器间数据共享,核心原理就是在宿主机开辟一块空间,被其他容器共享,实现容器间文件内容的共享,只需少量的改动,其他容器都会生效。

数据卷,即保存数据的单位

volume数据卷的设置有两种方式,下面会进一步表述。

二、有两种通过命令设置数据卷的方法

一)、方式1. 通过 -v 挂载宿主机目录

1、格式

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

eg:docker run --name r1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat:8.5.46-jdk8-openjdk

ps:路径不能写错,区分大小写。缺点:有写错的风险

2、浅实践下

-v 挂载宿主机目录, 在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么。

  • step1: 把文件上传到宿主机服务器: /usr/webapps

  • step2:设置新的tomcat容器完成数据卷的挂载:
    docker run --name t1 -p 8000:8080 -d -v /usr/webapps:/usr/local/tomcat/webapps tomcat

  • step3: 验证:在浏览器输入
    宿主机ip:8000/v-test1/index.html

二)、方式2.实现形式:通过共享容器内挂载点--volumes-from,其他容器指定此挂载点

1、格式

为方式一的改善:通过--volumes-from 共享容器内挂载点

  • 1)、创建共享容器格式:docker create --name gzpoint1 -v /usr/webapps:/usr/local/tomcat/webapps tomcat /bin/true

create :代表只创建不运行
/bin/true相当于一个占位符

  • 2)、启动容器并指定挂载点:docker run --name r1 -p 8001:8080 --volumes-from gzpoint1 -d tomcat

2、浅实践下

1)、创建共享挂载点容器

docker create -v:/usr/webapps:/usr/local/tomcat/webapps --name webapps tomcat /bin/true

2)、启动新容器并指定挂载点webapps

docker run --name r2 -p 8008:8080 -d tomcat
在宿主机目录/usr/webapps 新建文件夹v-test1 ,在文件夹里新建index.html ,随便写点什么

3)、验证
  • 访问:宿主机ip:8008/v-test1/index.html
  • 进入容器r2里面,在webapps路径可看到内容和宿主机/usr/webapps里的内容一致
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值