当前位置:   article > 正文

Docker学习2:基本概念---镜像、容器和Registry_docker registry镜像是什么

docker registry镜像是什么

镜像的基本概念

Docker镜像是一个特殊的文件系统。除了提供运行容器所需的程序、库、配置等文件以外,还包含一些为运行时准备的配置参数,如匿名卷,环境变量,用户等。
镜像不包含任何动态的数据。

镜像被设计为分层存储的架构,因为镜像往往需要包含操作系统的完整root文件系统,而完整的root文件系统体积比较庞大,因此将镜像设计为分层存储。

镜像是个虚拟的概念,其本身并不是一个类似打包文件,即实际的实现并不是单个的文件,而是由一组文件系统组成,或者是由多层文件系统组成。

镜像构建时,是按照层构建的。前一层是后一层的基础。每一层构建完成后就不会再改变,后面的任何一层的改变只发生在自己的层上,不会更改之前的层的内容数据。例如,删除前一层的文件,并不是真正的删除前一层中的文件数据,而是在当前层标记前一层的文件为删除。因此被删除的文件其实会一直保留在镜像系统中。

因此在构建镜像时,需要保证每一层只包含必要的内容,任何额外的数据在该层构建结束之前必须清理掉,否则会一直保存在该层中,导致镜像中包含不必要的数据,进而增加镜像的体积与冗余程度

分层存储的架构设计,可以利用之前构建好的镜像作为基础层,进一步添加新的层,以定制自己所需的新的镜像。

容器的基本概念

镜像与容器的关系,类似面向对象编程中类和实例的关系。容器是镜像运行的实体。容器可以被创建,启动,停止,删除等。

容器实质是进程,但是容器中的进程运行于属于自身的命名空间。容器中的进程运行在一个隔离的环境中,使用起来好像是在独立于宿主机的操作系统下运行一样。

每一个容器的运行,都以镜像为基础层,在其之上创建一个当前容器的存储层,称这个为容器运行时读写而准备的存储层为容器存储层

容器存储层的生命周期和容器一样,在容器被删除时,容器存储层也将消失,保存于容器存储层的数据也将丢失。因此按照docker最佳实践的要求,容器存储层不应该保存任何的数据。所有数据的保存,都应该使用数据卷,或者绑定宿主机的目录

Registry的基本概念

Docker Registry是一个集中存储,分发镜像的服务。

一个Docker Registry中往往包含多个仓库(Repository),每个仓库可以包含多个标签(Tag),每个标签对应一个镜像。

通常一个仓库会包含同一个镜像的不同版本,标签对应镜像的版本号。可以使用<仓库>:<标签>的形式来指点特定的镜像。

用户可以在本地搭建私有的Docker Registry。

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

闽ICP备14008679号