本文分为四个部分,数据卷概念及作用、配置数据卷、数据卷容器、配置数据卷容器,内容非常简单实用,希望能帮助大家
数据卷概念及作用
数据卷:
数据卷是宿主机中的一个目录或文件(这个目录被挂在到容器才被称为数据卷)
当容器目录和数据卷目录绑定后,容器目录和数据卷目录会同步
一个数据卷可以被多个容器同时挂载多个数据卷

数据卷的作用----解决下面三个问题
docker容器删除后,在容器中产生的数据也将随之流失
docker容器和外部机器不可以直接交换文件
容器之间不可以进行数据交互

配置数据卷
创建启动容器时,使用-v参数,设置数据卷
docker run … -v 宿主机目录(文件):容器目录(文件)…

注意事项:
(1)目录必须是绝对路径
(2)如果目录不存在,会自定创建
(3)可以挂载多个数据卷(每个使用一个-v)

例子1:
docker images #查看镜像
docker run -it --name centos1 -v /root/data:/root/data_con centos /bin/bash #创建容器并挂载数据卷

例子2:
docker images
docker run -it --name centos1 -v /root/data1:/root/data_con1 -v /root/data2:/root/data_con2 一个容器挂载多个数据卷

例子3:一个数据卷挂载到俩个容器
docker images
docker run -it --name centos2 -v /root/data:/root/data_con centos 将data挂载到centos2上
docker run -it --name centos3 -v /root/data:/root/data_con centos 将data挂载到centos3上

数据卷容器
多容器进行数据交换
(1)多个容器挂载同一个数据卷
(2)数据卷容器

原理说明
假设有a1、a2、a3三个容器,a1和a2交换数据,a3作为数据卷容器
现在将a3与宿主机data目录进行数据卷绑定,然后分别使a1和a2与a3的目录进行数据卷绑定

配置数据卷容器
(1)创建启动a3数据卷容器,使用-v参数设置数据卷
docker run -it --name a3 -v /volume centos /bin/bash
(2)创建启动a1、a2容器,使用–volumes-from 参数设置数据卷
docker run -it --name a1 --volumes-from a3 centos /bin/bash
docker run -it --name a2 --volumes-from a3 centos /bin/bash

实例:
docker run -it --name a3 /volume centos /bin/bash #没有指定数据卷目录,会设置默认值 可以使用查看容器信息命令查看数据卷目录位置
克隆一个会话
docker run -it --name a1 -volumes-from c3 centos #
克隆会话
docker run -it --name a2 --volumes-from c3 centos

注:这时a3的/volume就成为a1和a2的数据卷了

实测创建a3图
a2中创建的a.txt已同步
Docker系列(4)之docker数据卷实测创建a2图
在a2中创建文件a.txt
Docker系列(4)之docker数据卷实测创建a1图
a2中创建的a.txt成功同步
Docker系列(4)之docker数据卷

相关文章: