一 容器数据卷
挂载数据卷:容器与主机数据共享,容器内数据互通,持久化数据;有点像redis主从复制,可以互相修改;容器关闭后,修改主机文件,重启容器后,数据会同步过去;
docker inspect 容器id 查看是否绑定成功,权限是什么
用命令-v添加容器数据卷
1.docker run -it -v 宿主机目录路径:容器内目录路径 容器id/name
2..docker run -it -v 宿主机目录路径:容器内目录路径:ro 容器id/name 容器内只读不可写 不能新建不能修改 ro:readonly
3.docker run -it -v 宿主机目录路径:容器内目录路径 -v 宿主机目录路径:容器内目录路径 容器ID/name 添加多个容器卷
用Dockerfile添加
1.新建镜像文件夹 mydocker
2.新建Dockerfile文件,可用VOLUME指令添加一个或多个容器数据卷
3.指令格式:VOLUME["VolumeContainer","VolumeContainer2","VolumeContainer3"] 添加是哪个容器数据卷。出于可移植和分享的考虑,dockerfile中不能使用-v方式实现,由于宿主机目录是依赖于特定宿主机的,所以不能指定宿主机 目录,dockerfile会自动生成一个目录,用docker inspect查看
4.写入dockerfile文件
等价于docker run -it -v /host1:/dataVolumeContainer1 -v /host2:/dataVolumeCcontainer2 centos /bin/bash
5.docker build -f(file) /mydocker/Dockerfile -t wyh/centos(自己起的镜像名字) 会一层一层的进行build 最上面一层是 wyh/centos 可读可写的
6.docker run -it wyh/centos 可实现数据共享
volumes-from
命名一个容器挂在数据卷,指定为父容器,其他容易挂载这个父容器实现数据共享
子容器挂载父容器:
1.父容器删除之后,其他子容器的数据还是互通的
2.删除子容器,其他容器的数据也是互通的
3.只要这个数据卷有容器在使用着,就会一直存在