数据卷和数据卷容器
数据卷可在容器之间共享或重用数据
重启关闭docker
docker启动
systemctl start docker
service docker start
重启docker服务
systemctl restart docker
sudo service docker restart
关闭docker
systemctl stop docker
service docker stop
删除容器
docker rm -f $(docker ps -a -q)
删除镜像
docker -f $(docker images -qa)
2.卷中的更改可以直接生效。
3.数据卷中的更改不会包含在镜像的跟新中。
4.卷数据的生命周期一直持续到没有容器使用它为止。
宿主对应目录下文件和容器下目录完全一样修改,删除,新增。且容器停止后,再启动同样和宿主机上的内容一样。还有使用宿主机上一个现有文件夹创建容器,开启后的容器对应卷中也有宿主机下对应的内容。并且宿主卷中删除都对应目录,容器中目录在文件不在
如果宿主机上写数据出现:cannot open directory:Permissiondenied
解决办法:在挂载目录后多加一个 --privileged=true 参数即可。
docker run -it -v /宿主机绝对路径目录:/容器内目录 --privileged=true 镜像名
docker run -it -v /宿主机绝对路径目录:/容器内目录:ro 镜像名
ro 只读权限,是单项容器上只可以查看,容器上对应不目录下不可以新建,修改,删除。而宿主机上对应目录可以新增,修改,删除影响到容器上。
View Code
数据卷容器
- DockerFile
创建个linux镜像,且在镜像容器运行是在根目录下创建2个数据卷目录,打印文字一段,最后到 /bin/bash
# voolume test
FROM centos
VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
CMD eco "finished,----------success1"
CMD /bin/bash
相当于命令中
docker run -it -v /host:dataVolumeContainer1 -v /host2:/dataVolumeContainer2 centos /bin/bash
数据卷容器 容器间传递共享(--volumens-from)
创建一个容器,且有2个数据卷
docker run -it --name dc01 whj/centos
创建容器dc02 并继承容器dc01的数据卷
docker run -it --name dc02 --volumes-from dc01 whj/centos
创建容器dc03 并继承容器dc01的数据卷
docker run -it --name dc03 --volumes-from dc01 whj/centos
删除dc01容器后,dc02数据卷修改,可以反馈到dc03
创建dc04容器,继承dc03
docker run -it --name do04 --volumes-from dc03 whj/centos
删除dc03 修改dc04 可以反馈到dc02
所以结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止