1 数据卷概念及作用
1.1 什么是容器数据卷
先来看看Docker的理念:
- 将应用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的
- 容器之间希望有可能共享数据
Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷。
- 数据卷是宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,对方的修改会立即同步
- 一个数据卷可以被多个容器同时挂载
- 一个容器也可以被挂载多个数据卷
1.2 数据卷作用
• 容器数据持久化
• 外部机器和容器间接通信
• 容器之间数据交换
2 配置数据卷
创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
如下:
docker run -it --name=c4 -v /root/data:/root/data_container centos:7 /bin/bash
注意事项:
- 目录必须是绝对路径
- 如果目录不存在,会自动创建
- 可以挂载多个数据卷
3 配置数据卷容器
多容器进行数据交换,除了多个容器挂载同一个数据卷,还可以使用数据卷容器
如下图:
容器c1,c2连接到数据卷容器c3,而c3连接到数据卷。
创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run -it --name=c3 -v /volume centos:7 /bin/bash
创建完以后,通过
docker inspect c3
其中Source为该目录在本地的位置
创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷,将数据卷设置为c3
docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash
通过
docker inspect c2
查看c2容器状态
通过
docker inspect c1
查看c1容器的状态
4 数据卷小结
4.1 数据卷概念
- 宿主机的一个目录或文件
4.2 数据卷作用
- 容器数据持久化
- 客户端和容器数据交换
- 容器间数据交换
4.3 数据卷容器
- 创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
- 通过简单方式实现数据卷配置