目录
1.数据卷
2.数据卷的作用
3.2配置数据卷
1.设置数据卷
2.注意事项
3.3配置数据卷容器
1.多容器进行数据交换
2.配置数据卷容器
3.4数据卷小结
1.数据卷概念
2.数据卷作用
3.数据卷容器
Docker 容器删除后,在容器中产生的数据还在吗?
Docker 容器删除后,在容器中产生的数据也会随之销毁 Docker
容器和外部机器可以直接交换文件吗?
容器之间想要进行数据交互?
1.数据卷是宿主机中的一个目录或文件 2.当容器目录和数据卷目录绑定后,对方的修改会立即同步 3.一个数据卷可以被多个容器同时挂载 4.一个容器也可以被挂载多个数据卷
容器数据持久化 外部机器和容器间接通信 容器之间数据交换
# 创建启动容器时,使用 –v 参数 设置数据卷 docker run ... –v 宿主机目录(文件):容器内目录(文件) ...
docker run -i -t --name c1 -v /root/data:/root/data_container docker.io/centos:7 /bin/bash
1. 目录必须是绝对路径 2. 如果目录不存在,会自动创建 3. 可以挂载多个数据卷 # 挂载多个目录卷
docker run -i -t --name c1 -v /root/data:/root/data_container \
-v /root/data2:/root/data_container2 \docker.io/centos:7 /bin/bash
1. 多个容器挂载同一个数据卷
docker run -it --name=c3 -v /root/data:/root/data docker.io/centos:7
docker run -it --name=c4 -v /root/data:/root/data docker.io/centos:7
2. 数据卷容器
# 删除容器,没停的容器需要先用 docker stop 命令停止后再进行删除
docker rm c1 c2 c3 c4
# 创建启动c3数据卷容器,使用 –v 参数 设置数据卷,volume 宿主机会自动分配一个目录,然后容器内根目录会有volume目录
docker run -it --name=c3 -v /volume docker.io/centos:7 /bin/bash
# 查看自动分配的命令,查看 json中的属性 Mounts[0].Source
docker inspect c3
"Mounts": [{"Type": "volume","Name": "43383c7e6cb8d2161a2cd11024128a52816d49c7627d834291f8acd81f27c14d","Source": "/var/lib/docker/volumes/43383c7e6cb8d2161a2cd11024128a52816d49c7627d834291f8acd81f27c14d/_data","Destination": "/volume","Driver": "local","Mode": "","RW": true,"Propagation": ""}]
# 创建启动 c1 c2 容器,使用 –-volumes-from 参数 设置数据卷
docker run -it --name=c1 --volumes-from c3 docker.io/centos:7
docker run -it --name=c2 --volumes-from c3 docker.io/centos:7
# 三个容器数据卷都是挂载到宿主机的Mounts[0].Source目录下,删除c3容器也不会应影响到c1和c2
宿主机的一个目录或文件
1.容器数据持久化 2.客户端和容器数据交换 3.容器间数据交换
1.创建一个容器,挂载一个目录,让其他容器继承自该容器( --volume-from ) 2.通过简单方式实现数据卷配置