6 获取容器 #
本章提供获取容器映像的相关信息。
6.1 SUSE Linux Enterprise 基本映像 #
SUSE 提供了多个官方基本容器映像,您可以基于这些映像构建自定义容器。每个 SLE 基本映像提供一个具有外壳和软件包管理功能的最小环境。
您可从 https://registry.suse.com 获取基本映像。有关 SUSE 注册表的信息,请参见第 6.3 节 “SUSE 注册表”。SUSE 注册表中的基本映像都处于“正式发布”状态(也就是说,它们适合用于生产环境),并且是 SLES 12 和 SLES 15 的 LTSS 版本。SUSE 注册表中的 SUSE Linux Enterprise 基本映像会收到安全更新,并涵盖在 SUSE 支持计划中。有关这些支持计划的详细信息,请参见第 14 章 “兼容性和支持计划”。
6.2 SUSE 容器属性 #
SUSE 容器映像都有标识符,这些标识符提供有关这些映像的版本、来源和创建时间的信息。从储存库中提取容器映像并在其上运行 podman inspect
之后,便可访问下面列出的各个标识符。
6.2.1 储存库名称 #
储存库名称以产品名称开头,例如:suse/sle...
、opensuse/tumbleweed
或 caasp/...
。适用于所有服务包的 SLE 15 容器位于储存库 suse/sle15
中。但对于 SLE 12,每个服务包都有一个单独的储存库名称,例如 suse/sles12sp3
、suse/sles12sp4
和 suse/sles12sp5
。
6.2.2 标签 #
标签有助于识别映像。所有 SLE 容器映像标签均以 com.suse.PRODUCTCONTAINER_NAME
开头,后跟其他详细信息。容器映像还包含 org.opencontainers.image
标签。
下面是所有当前定义的标签的列表。
org.opencontainers.image.title
、com.suse.sle.base.title
必须由派生映像提供:是
OCI 表示法:
org.opencontainers.image.title
说明:映像标题
示例:
SUSE Linux Enterprise 15 基本容器
org.opencontainers.image.description
、com.suse.sle.base.description
必须由派生映像提供:是
OCI 表示法:
org.opencontainers.image.description
说明:映像的简要说明
示例:
包含基于 SUSE Linux Enterprise 15 的容器适用最小环境的映像
org.opencontainers.image.version
、com.suse.sle.base.version
必须由派生映像提供:是
OCI 表示法:
org.opencontainers.image.version
说明:映像版本 (
MAJOR.SP.CICOUNT.BUILDCOUNT
)示例:
15.0.4.2
org.opencontainers.image.created
、com.suse.sle.base.created
必须由派生映像提供:是
OCI 表示法:
org.opencontainers.image.created
说明:映像构建时戳
示例:
2018-07-27T14:12:30Z
org.opencontainers.image.vendor
、com.suse.sle.base.vendor
必须由派生映像提供:否
OCI 表示法:
org.opencontainers.image.vendor
说明:映像供应商
示例:
SUSE LLC
org.opencontainers.image.url
、com.suse.sle.base.url
必须由派生映像提供:否
OCI 表示法:
org.opencontainers.image.url
说明:附加信息
示例:
https://www.suse.com/products/server/
org.openbuildservice.disturl
、com.suse.sle.base.disturl
必须由派生映像提供:是
OCI 表示法:
org.openbuildservice.disturl
说明:映像 OBS URL
示例:
obs://build.suse.de/SUSE:SLE-15:Update:CR/images/2951b67133dd6384cacb28203174e030-sles15-image
org.opensuse.reference
、com.suse.sle.base.reference
必须由派生映像提供:是
OCI 表示法:
org.opensuse.reference
说明:指向映像的引用。切勿更改您使用
docker pull REF_NAME
获取的映像。示例:
registry.suse.com/suse/sle15:4.2
6.2.3 标记 #
标记用于引用映像。标记是映像名称的组成部分。与标签不同,标记可以自由定义,通常用于表示版本号。
如果某个标记存在于多个映像中,则将使用最新的映像。由映像维护者决定指派给容器映像的标记。
常规标记格式为:储存库名称
: 映像版本规范
(通常为版本号)。例如,SUSE Linux Enterprise Server 15 SP2 的最新发布映像的标记将为 suse/sle15:15.2
。
6.3 SUSE 注册表 #
官方 SUSE 注册表可从 https://registry.suse.com 获取。它包含经过测试和更新的 SUSE Linux Enterprise 基本容器映像。SUSE 注册表中的所有映像都要经历一个维护过程。构建的映像包含最新可用的更新和修复。SUSE 注册表的 Web 用户界面列出了一部分可用映像。
6.4 校验容器 #
通过 SUSE 注册表提供的映像签名储存在 Notary 中。您可以使用以下命令校验特定映像的签名:
docker trust inspect --pretty registry.suse.com/suseIMAGE:TAG
例如,docker trust inspect --pretty registry.suse.com/suse/sle15:latest
命令可校验最新 SLE15 基本映像的签名。
要在提取映像时自动校验该映像,请将环境变量 DOCKER_CONTENT_TRUST
设置为 1
。例如:
env DOCKER_CONTENT_TRUST=1 docker pull registry.suse.com/suse/sle15:latest
6.5 比较容器 #
container-diff 工具可用于分析和比较容器映像。container-diff
可根据多个准则检查映像,其中包括:
Docker 映像历史
映像文件系统
DEB 软件包
RPM 软件包
PyPI 软件包
NPM 软件包
您可以检查单个映像,也可以对两个映像执行 diff 操作。container-diff
支持位于本地 Docker 守护程序和远程注册表中的 Docker 映像。您也可以对 .tar
、.tar.gz
和 .tgz
存档使用该工具。
另一方面, container-diff 软件包属于 SUSE Linux Enterprise Server 15 SP3 Containers 模块的一部分。您也可以单独安装该软件包。有关安装该软件包的说明,请参见 container-diff 文档。
6.6 本地注册表 #
6.6.1 Portus #
Portus 是一款本地应用程序,可为 Docker 注册表提供图形界面和授权机制。有关 Portus 功能的详细说明,请参见 http://port.us.org/features.html。
您可以使用标准 Docker 容器在 Kubernetes 群集内或在裸机上部署 Portus。有关部署选项以及如何在开发环境中开始使用 Portus 的说明,请参见 http://port.us.org/docs/deploy.html。