当前位置:   article > 正文

镜像分层、容器数据卷理解_容器 / 镜像 / 数据卷 是什么?

容器 / 镜像 / 数据卷 是什么?

镜像理解

    镜像就像光盘,是个一系列文件的集合,包含了程序、配置及运行环境信息,属于联合文件系统。

    镜像分层:centos的镜像只有200M,但是tomcat的镜像却400多M,为什么?是因为镜像是分层结构,就像下图,tomcat的镜像中包含了其依赖的jdk、centos等资源,所以显得比较大。

 

容器数据卷理解

     docker容器数据卷可以看成使我们生活中常用的u盘,它存在于一个或多个的容器中,由docker挂载到容器,但不属于联合文件系统,Docker不会在容器删除时删除其挂载的数据卷。数据卷就是容器中的数据持久化的一种方式。

     使用命令添加数据卷,需要参数v(volume的缩写),后接宿主机路径和容器路径的映射关系。 

     如果后跟ro,则表示只读。 

  1. docker -it -v /宿主机绝对路径:/容器内路径  镜像名
  2. docker -it -v /宿主机绝对路径:/容器内路径:ro  镜像名

     我们也可以使用DockerFile来添加容器卷,DockerFile就是对镜像模板的描述文件,如下描述了使用DockerFile添加容器卷的方法。

  1. mkdir mydocker
  2. cd mydocker
  3. vim DockerFile
  4. #volume test
  5. FROM centos
  6. VOLUME ["/dataVolumeContainer1","/dataVolumeContainer2"]
  7. CMD echo "finished, ------------, success!"
  8. CMD /bin/bash
  9. docker build -f /mydocker/DockerFile -t haylen/centos .
  10. docker run -it haylen/centos
  11. docker inspect 运行的容器id

      数据卷容器就是指挂在数据卷的容器,该容器可以作为父容器,被其他容器挂载,从而实现容器间数据的共享。

  1. docker run -it --name dc01 haylen/centos
  2. docker run -it --name dc02 --volume-from dc01 haylen/centos
  3. docker run -it --name dc03 --volume-from dc01 haylen/centos

      使用这种方式共享后,把dc01删除,其共享数据仍然存在。直至所有的dc都删除,否则容器卷都一直共享存在。

 

 

 

如果您喜欢这篇文章,别忘了点赞和评论哦!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/283764
推荐阅读
相关标签
  

闽ICP备14008679号