1 数据卷

1.1 思考

  • Docker容器删除后,在容器中产生的数据还在吗?

数据卷思考1.png

  • Docker容器和外部机器可以直接交换文件吗?

数据卷思考2.png

  • 容器之间能进行数据交互?

数据卷思考3.png

1.2 数据卷概念

  • 数据卷是宿主机中的一个目录或文件。
  • 当容器目录和数据卷目录绑定后,对方修改会立即同步。
  • 一个数据卷可以同时被多个容器同时挂载。
  • 一个容器也可以被挂载多个数据卷。

数据卷概念.png

1.3 数据卷作用

  • 容器数据持久化。
  • 外部机器和容器间接通信。
  • 容器之间数据交换。

1.4 配置数据卷

1.4.1 命令

  1. docker run ... -v 宿主机目录(文件):容器内目录(文件) ...

注意事项: ①目录必须是绝对路径。 ②如果目录不存在,则会自动创建。 ③可以挂载多个数据卷。

1.4.2 应用示例

1.4.2.1 一个容器挂载一个数据卷

  1. docker run -id --name c1 -v /root/data:/root/data_container centos:7

一个容器挂载一个数据卷.gif

1.4.2.2 两个容器挂载同一个数据卷

  1. docker run -id --name c1 -v /root/data:/root/data_container centos:7
  2. docker run -id --name c2 -v /root/data:/root/data_container centos:7

两个容器挂载同一个数据卷.gif

2 数据卷容器

2.1 概念

  • 多容器进行数据交换。
    • 多个容器挂载同一个数据卷。
    • 数据卷容器。

数据卷容器概念.png

2.2 配置数据卷容器

  • 创建启动c3数据卷容器,使用-v参数设置数据卷。
  1. docker run -id -v /volume --name c3 centos:7
  • 创建启动c1、c2容器,使用—volumes-from参数设置数据卷。
  1. docker run -id --volumes-from c3 --name c1 centos:7
  2. docker run -id --volumes-from c3 --name c2 centos:7

配置数据卷容器.gif