Docker容器数据卷
思考
Docker 容器删除后,在容器中产生的数据也会随之销毁
可以将容器挂载到数据卷,容器删除数据卷不会被删除
Docker 容器和外部机器可以直接交换文件吗?
不可以,外部机器与容器之间网络不互通
容器之间想要进行数据交互?
使用数据卷,两个容器挂载到同一个数据卷
数据卷及其作用介绍
介绍
1.数据卷是宿主机中的一个目录或文件
2.当容器目录和数据卷目录绑定后,对方的修改会立即同步
3.一个数据卷可以被多个容器同时挂载
4.一个容器也可以被挂载多个数据卷
作用
1:数据卷可在容器之间共享或重用数据
2:卷中的更改可以直接生效
3:数据卷中的更改不会包含在镜像的更新中
4:数据卷的生命周期一直持续到没有容器使用它为止
5.容器数据持久化(完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷)
6.外部机器和容器间接通信
7.容器之间数据交换
配置数据卷
创建启动容器时,使用 –v 参数 设置数据卷
docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
举例
创建一个名为test容器并挂载到数据卷/root/data_contain中
docker run -it --name=test -v /root/data:/root/data_contain redis:lastest
注意事项:
-
目录必须是绝对路径
-
如果目录不存在,会自动创建
-
可以挂载多个数据卷
多容器进行数据交换
-
多个容器挂载同一个数据卷
-
数据卷容器
1.创建启动c3数据卷容器,使用 –v 参数 设置数据卷
docker run –it --name=c3 –v /volume centos:7 /bin/bash
- 创建启动 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
小结
数据卷概念
宿主机的一个目录或文件
数据卷作用
容器数据持久化
客户端和容器数据交换
容器间数据交换
数据卷容器
创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from )。
通过简单方式实现数据卷配置
注意
1.数据卷中的内容改变容器中的内容也会改变
2.容器中的内容改变数据卷中的内容也会改变
3.一个容器挂载到一个已经有内容的数据卷中,容器中会直接有该数据卷的内容
4.容器内容与数据卷内容一致
5.容器删除数据卷不会删除