ad

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_3.1 Dockerfile 及镜像制作

admin 163 2023-10-25

【摘要】 本书摘自《基于Kubernetes的容器云平台实战》一书中第3章,第1节,由陆平、左奇、付光和张晗等编著。

3.1 Dockerfile 及镜像制作

3.1.1 Dockerfile 的作用

Dockerfile 的主要作用是用来描述镜像文件的构成,通过这个文件可以生成镜像。

开发人员编写Dockerfile 后执行镜像构建命令以生成镜像,通过镜像文件可以为开发 团队提供完全一致的开发环境,提高开发效率。

《基于Kubernetes的容器云平台实战》_了解最新技术前沿_3.1 Dockerfile 及镜像制作

测试人员可以直接使用开发生成的镜像或使用开发提供的 Dockerfile 生成新的镜像文 件,保证开发测试环境一致性,减少环境差异性带来的不必要问题。

运维人员通过编排相应的镜像文件,可以简化部署、方便升级,以及无缝移植。

3.1.2 Dockerfile 文件构成

Dockerfile 是一个文本文件,内容中包含了一条或多条指令,每条指令构建镜像文件的 一层。Dockerfile 文件一般以“#”注释行开头,包括基础镜像信息、维护者信息、镜像操作指令、启动时执行指令等。

3.2 镜像基本操作

以下基于Docker-ce 18.04 版本来对镜像操作的命令进行介绍。这些命令通过Restful形 式的接口访问Docker 引擎来实现。

3.2.1 从镜像仓库下载镜像

docker image pull [OPTIONS] NAME[:TAG|eDIGEST]

如果NAME 不包含任何仓库域名并且无tag信息的话,相当于下载标识为 registry-1. docker.io:80/library/:latest 的镜像,访问协议是HTTPS。 运行在 localhost上的仓库, 默认使用HTTP 访问。 -a/--all-tags 用于拉取NAME 对应的所有镜像。 --platform

用于指定拉取某种OS 和体系结构下的镜像。

可以通过 Dockerd 的 - -registry-mirror 启动选项,设置下载镜像的默认仓库地

址列表,另一个选项--insecure-registry 设置可接受HTTP 协议的地址列表。选项

也可以写入 daemon.json,作用相同。

镜像标识若带摘要,仓库执行内容将精确匹配,客户端能感知到镜像内容的改变。

对于需要认证授权的镜像仓库,用户先通过 docker login完成登录操作,才能执行 后续 pull 命令。对应的注销命令为docker logout。

3.2.2 将本地镜像上传到镜像仓库

docker image push [OPTIONS] NAME[:TAG]

命令选项与pull 命令一样;同样可能要先完成认证授权后才执行push操作。

3.2.3 查看本地镜像

查看本地仓库中的镜像列表和镜像的元数据详细信息,可以使用Docker引擎提供的下 述命令。

显示本地镜像列表

docker image ls [OPTIONS][REPOSITORY[:TAG]]

该命令默认显示全部本地镜像;也可显示 tag不同而名称相同的全部镜像。

使用--digests 选项补充显示远程仓库的摘要信息。 --format(-f 不是该选项缩写) 选项指定显示结果,值为Go 模板,列占位符有ID、repository、tag、digest、createdsince、 createdat 和 size。带有table 前缀可显示表格头。

--no-trunc 选项不会截断显示ID 等字段。 -q 或者--quiet 选项只显示ID 列。 -a 或者--al1 选项显示 commit、build等命令生成的中间镜像。

-f 或者--filter 选项表达式过滤显示结果。表达式为key=value 格式,若需 要多个过滤表达式,需使用多个-f 选项。可用的key有dangling=(true |false)、

label=或者label==、before、since和reference, 表 达式可以使用不等于号。 key为before 和 since 时,显示创建时间在指定镜像之前或者 之后的镜像。 value是镜像标识或匹配串时支持匹配多字符的‘*'和单字符的‘?',若匹 配字符‘/’时需先加以转义。支持字符范围,比如[a,k]或者[^a-f], 对特殊字符使用‘\’ 作为转义。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:阅读《基于Python语言的软件测试技术》_打开新的知识大门_2.3 需求分析的质量管理
下一篇:打开《Java+EE应用开发实践教程》_读懂新的设计思路_4.2.1 实验十三-实验步骤
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×