Docker入门(四)容器的数据卷

Docker入门(四)容器的数据卷


文章目录

  • Docker入门(四)容器的数据卷
  • 前言
  • 一、数据卷概念及作用
    • 数据卷概念
    • 数据卷的作用
  • 二、配置数据卷
    • 创建启动容器时,使用 –v 参数 设置数据卷
    • 演示数据卷持久化(利用docker的centos7镜像进行容器演示)
    • 演示一个容器挂载多个数据卷
    • 演示多个容器挂载同一个数据卷
    • 配置数据卷
      • 1.创建数据卷容器
      • 2. 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
  • 小结
    • 1. 数据卷概念
    • 2. 数据卷作用
    • 3. 数据卷容器


前言

开始介绍之前我们先来思考一下问题:

  • Docker 容器删除后,在容器中产生的数据还在吗?
    Docker入门(四)容器的数据卷_第1张图片

  • Docker 容器和外部机器可以直接交换文件吗?
    Docker入门(四)容器的数据卷_第2张图片

  • 容器之间可以进行数据交互?Docker入门(四)容器的数据卷_第3张图片


一、数据卷概念及作用

数据卷概念

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

数据卷的作用

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

二、配置数据卷

创建启动容器时,使用 –v 参数 设置数据卷

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

注意事项:

  1. 容器目录必须是绝对路径
  2. 如果目录不存在,会自动创建
  3. 可以挂载多个数据卷

Docker入门(四)容器的数据卷_第4张图片

演示数据卷持久化(利用docker的centos7镜像进行容器演示)

创建容器c1并挂载/root/data到/root/data_container

docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash

当我们关闭c1容器后可以看到数据卷数据文件还在
当我们删除c1容器后可以看到数据卷数据目录还在

演示一个容器挂载多个数据卷

docker run -it --name=c2 -v ~/data2:/root/data2 -v ~/data3:/root/data3 centos:7

演示多个容器挂载同一个数据卷

docker run -it --name=c3 -v /root/data:/root/data_container centos:7 /bin/bash
docker run -it --name=c4 -v /root/data:/root/data_container centos:7 /bin/bash

当在一个容器中修改文件,看到另一个容器文件也会跟着修改

配置数据卷

Docker入门(四)容器的数据卷_第5张图片

1.创建数据卷容器

docker run –it --name=c3 –v /volume centos:7 /bin/bash

2. 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

使用c3数据卷容器创建c1和c2容器。
创建完即使我们关闭容器c3,却丝毫不会影响c1和c2对数据卷的交互

小结

1. 数据卷概念

宿主机的一个目录或文件

2. 数据卷作用

  • 容器数据持久化
  • 客户端和容器数据交换
  • 容器间数据交换

3. 数据卷容器

  • 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
  • 通过简单方式实现数据卷配置

你可能感兴趣的:(Docker,docker)