Docker 容器的数据卷 以及 数据卷容器
Docker 容器删除后,在容器中产生的数据还在吗? 答案是 不在
Docker 容器和外部机器可以直接交换文件吗? 在没有数据卷的情况下,答案是 不可以
如下图:外部机器:Windows系统(自己的电脑) 宿主机:centOS7 容器:docker容器
容器之间想要进行数据交互? 在没有数据卷的情况下,答案是 不可以
那么 究竟什么是数据卷?
数据卷(注意,只有当宿主机上的目录被容器挂载的时候,才称之为叫数据卷)
• 数据卷是宿主机中的一个目录或文件
• 当容器目录和数据卷目录绑定后,对方的修改会立即同步
• 一个数据卷可以被多个容器同时挂载
• 一个容器也可以被挂载多个数据卷
数据卷作用
• 容器数据持久化
• 外部机器和容器间接通信
• 容器之间数据交换
配置数据卷
⚫ 创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
docker run -it --name=c1 -v /usr/local/soft/dockerdir:/usr/local/soft/dockerdata centos:7 /bin/bash
⚫ 注意事项:
1. 目录必须是绝对路径
2. 如果目录不存在,会自动创建
3. 可以挂载多个数据卷
配置数据卷容器
1. 创建启动c3数据卷容器,使用 –v 参数 设置数据卷(docker会自动分配到宿主机上一个目录,这里的 /volume是容器中的一个目录,名字可自定义)
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
数据卷小结
1. 数据卷概念
•宿主机的一个目录或文件
2. 数据卷作用
•容器数据持久化
•客户端和容器数据交换
•容器间数据交换
3. 数据卷容器
•创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
•通过简单方式实现数据卷配置