数据卷和数据卷容器

数据卷可在容器之间共享或重用数据

 重启关闭docker

docker启动       

    systemctl start docker
    service docker start

重启docker服务

    systemctl restart  docker
    sudo service docker restart

关闭docker    

    systemctl stop docker
    service docker stop
View Code

 删除容器

docker rm -f $(docker ps -a -q)
View Code

删除镜像

docker -f $(docker images -qa)
View Code

 

 

 

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

所以结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止

posted @ 2021-01-07 16:13  吴枫  阅读(257)  评论(0编辑  收藏  举报