思考:
1.Docker容器删除后,在容器中的数据还在吗?
2.Docker 容器和外部机器可以直接交换文件吗?
3.容器之间想要进行数据交互?
为了解决以上3个问题,数据卷应运而生。
数据卷作用:
容器数据持久化
外部机器和容器间接通信
容器之间数据交换
数据卷:
数据卷是宿主机中的一个目录或文件
当容器目录和数据卷目录绑定后,对方的修改会立即同步
一个数据卷可以被多个容器同时挂载
一个容器也可以被挂载多个数据卷
命令
创建容器时,使用 -v 参数,设置数据卷;
docker run ... -v 宿主机目录(文件):容器内目录(文件)...
docker run -it --name=c1 -v /root/data:/root/data_container centos:7 /bin/bash
注意事项:
1.目录必须是绝对路径
2.如果目录不存在,会自动创建
3.可以挂载多个数据卷
配置数据卷容器
多容器进行数据交换
- 多个容器挂载同一个数据卷
- 数据卷容器
命令
1.创建启动c3数据卷容器,使用-v 参数 设置数据卷,/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
查看目录映射关系
docker inspect -f "{{.Mounts}}" nginx