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

容器间数据共享~volume

  • 一、简单了解
  • 二、有两种通过命令设置数据卷的方法
    • 一)、方式1. 通过 -v 挂载宿主机目录
      • 1、格式
      • 2、浅实践下
    • 二)、方式2.实现形式:通过共享容器内挂载点`--volumes-from`,其他容器指定此挂载点
      • 1、格式
      • 2、浅实践下
        • 1)、创建共享挂载点容器
        • 2)、启动新容器并指定挂载点webapps
        • 3)、验证

一、简单了解

容器间数据共享简图:
Docker(五)、容器间数据共享~volume_第1张图片

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

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

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里的内容一致

你可能感兴趣的:(docker,docker,容器,运维,docker容器间数据共享)