如何在云计算基础架构平台中创建云主机
133
2023-10-25
【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第1章,第3节,由陆平、左奇、付光和张晗等编著。
1.3 Docker 基本概念
用户使用Docker 的一般场景如下:用户在某镜像基础上,在本地生成并标识新镜像; 也可根据镜像标识从镜像仓库下载镜像到本地; Docker 引擎利用本地镜像创建出多个相互 隔离运行的容器;或者先自动下载,然后创建出容器。这里涉及三个基本概念,即镜像、 容器和镜像仓库(如图1-2所示)。为了能够很好地理解和运用Docker, 有必要先对一些基 本概念进行整理和说明。
1.3.1 镜像
尽管镜像的创建是Docker 引擎的重要功能,但对此话题的介绍可以参考“镜像管理” 一章的内容,这里不再赘述。这里首先介绍的是镜像的标识、存储和传输这几方面的内容。
镜像的标识
在Docker 中,镜像以及与镜像相关的层、配置都是用十六进制字符串表示的摘要来唯 一标识的,这种摘要一般称为 ID。 但是这种ID 形式不利于记忆,因此对于镜像来说,人 们更喜欢使用另一种标识形式: example.com:5000/org/app:v1.0.0, 被称为镜像的名称或者 引用。
这种镜像名称中可以带有镜像仓库的主机名和端口号,下载镜像时, Docker 就是根据 它们(可以是IP地址加端口号)来访问镜像仓库的。如果镜像名称中没有仓库的主机名和 端口号,那么默认仓库域名指向 registry-1.dockerio, 而端口号为80。 Docker 访问镜像仓 库时一般使用HTTPS, 只有对运行在本机上的仓库服务才默认使用HTTP 传输。
镜像名称中的路径部分相当于命名空间,并且镜像名后可带有标签(tag) 和镜像摘要 (digest)部分。标签的前缀为“:”,如果镜像名称中不带有标签的话, Docker会自动为它 加上“latest”; 而镜像摘要部分的前缀为“@”;这两者最好不要组合使用。
镜像摘要是在镜像仓库创建镜像的时候生成的,也是一个十六进制串(带有表示产生镜 像摘要的算法前缀,比如 “sha256:”)。Docker引擎可从镜像仓库返回的消息头中得到镜像 摘要,并记录在镜像的描述信息中。镜像仓库可以根据镜像名称中的镜像摘要直接准确地 索引到镜像的描述文件。
当使用 docker images列出本地仓库中的镜像时,可以看到如下输出:
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/alpine-32 3.6.2 cof08c9led89 4 months ago 3.92MB
那么,这个镜像的标识为127.0.0.1:5000/alpine-32:3.6.2,其内部镜像 ID 的缩写,也就 是完整摘要串的前缀为 c0f08c91ed89。
镜像的存储
Docker引擎将本地镜像默认存储在/var/lib/docker目录下,其中, image 目录中包含镜 像的元数据以及各个层的链接关系,而实际的镜像层通过AUFS、Btrfs、ZFS、OverlayFS 和 Device Mapper等支持COW 技术的文件系统来构建,并通过内容可寻址的ID, 由元数 据将它们关联起来。使用了内容可寻址的ID 后,就可以在镜像的存储和传输过程中实现镜 像层的共享和缓存。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~