Docker 数据卷
2022年5月28日大约 2 分钟
数据卷概念
存在问题
- Docker 容器如果意外挂掉,容器中的数据会随之消失
- Docker 容器和外部机器不能直接交换文件
- Docker 容器之间也无法直接进行数据交互

数据卷
数据卷式宿主机中的一个目录或文件
- 当容器目录和数据卷目录绑定后,其中一方的修改会立即同步到另一方(可以做容器数据的持久化)
- 一个数据卷可以被多个容器同时挂在(可以做容器之间的数据交互)
- 一个容器也可以挂在多个数据卷

数据卷的配置
创建启动容器时,使用 -v 参数设置数据卷
- 目录必须是绝对路径
- 如果目录不存在,将自动创建
- 可以挂在多个数据卷
配置数据卷
docker run -it --name <容器名> -v <宿主机中的绝对路径>:<容器中的绝对路径> <镜像名>:<版本号>
docker run -it --name c1 -v D:/environment/docker-volumes/for-c1:/root/volume centos

查看容器的具体信息
docker inspect c1

进行修改测试
- 本机的 volumes 目录下执行
mkdir hello.txt

- 容器中 volume 目录下查看并执行
ls
mkdir world.txt

- 回到本机的 volumes 目录下查看
ls

多个容器挂在同一个数据卷
一个使用相同的命令,创建一个新的容器,并挂在同一个数据卷,这样多个容器之间就能直接进行数据传输了
数据卷容器
创建数据卷容器
docker run -it --name volumeC -v /volume centos
docker run -it --name c1 --volumes-from volumeC centos
docker run -it --name c2 --volumes-from volumeC centos



查看 volumeC 具体信息
docker inspect volumeC

尝试容器之间的通信
- 在容器 c1 中执行
cd volume
mkdir hello-c2.txt

- 在容器 c2 中查看并执行
cd volume
ls
mkdir hello-c1.txt

