Docker容器数据卷

86 阅读2分钟

1.数据卷概念及作用:

  1. 作用:

    1. 容器数据持久化
  2. 客户端和容器数据交换

    1. 容器间数据交换
  3. 概念:

    1. 数据卷是宿主机中的一个目录或文件

    2. 当容器目录和数据卷目录绑定后,对方的修改会立刻同步

    3. 一个数据卷可以被多个容器同时挂载

    4. 一个容器卷也可以被挂载多个数据卷

    5. 图示:

image.png

2.配置数据卷:

1.一个容器挂载一个目录:

  1. 创建启动容器时,使用 -v 参数 设置数据卷
docker run ... -v 宿主机目录(文件):容器内目录(文件) centos:7 命令
例:
docker run -it --name=c1 -v /root/data:/root/data_container centos:7

2.一个容器挂载多个目录

  1. 创建启动容器时,一个容器挂载多个目录:
docker run ... \
-v 宿主机目录(文件):容器内目录(文件) \
-v 宿主机目录(文件):容器内目录(文件) \
centos:7 命令

3.两个容器挂载同一个目录:

  1. 创建2个容器,分别被同一个目录挂载(实现两个容器之间的互通)

    docker run -it --name==red3 -v /root/data:/root/data centos:7
    docker run -it --name==red4 -v /root/data:/root/data centos:7
    

4.注意事项:

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

3.配置数据卷容器:

  1. 概念:

    创建一个容器,挂载一个目录,让其他容器继承自该容器

  2. 创建启动c3数据卷容器,使用 -v 参数 设置数据卷(宿主机目录没有设置,会自动分配一个);/volume为数据卷容器目录

    docker run -it --name=容器名 -v /volume centos:7 初始化命令
    
  3. 创建启动c1,c2容器,使用 --volumes-from 参数 设置数据卷;--volumes为容器目录volume

    docker run -it --name=c1 --volumes-from c3 centos:7 初始化命令
    docker run -it --name=c2 --volumes-from c3 centos:7 初始化命令
    
  4. \