3 获取容器 #
本章提供获取容器映像的相关信息。
3.1 SUSE Linux Enterprise 基本映像 #
SUSE 提供了大量官方基本容器映像,您可以基于这些映像来构建自定义容器。每个 SLE 基本映像都包含一个不带内核的 SLE 版本。基本映像中包含的操作系统是不具有任何功能的空环境。
您可从 https://registry.suse.com 获取基本映像。有关 SUSE 注册表的信息,请参见第 3.3 节 “SUSE 注册表”。SUSE 注册表中的映像均为正式发布(生产)的版本以及 SLES 12 和 SLES 15 的 LTSS 版本。SUSE 注册表中的 SUSE Linux Enterprise 基本映像可接收安全更新,并涵盖在 SUSE 支持计划中。有关这些支持计划的详细信息,请参见第 4 章 “支持计划”。
3.2 SUSE 容器属性 #
SUSE 容器映像带有标识符,可帮助您选择满足您需求的适合映像。从储存库中提取容器映像并在其上运行 podman inspect
之后,便可访问下面列出的各个标识符。
3.2.1 储存库名称 #
储存库名称以产品名称开头,例如:suse/sle/(…)
、opensuse/tumbleweed/(…)
、caasp/(…)
。适用于所有服务包的 SLE 15 容器位于名称空间 suse/sle15
中。此规则也适用于 SLE 的未来版本(例如 suse/sle16
)。但对于 SLE 12 而言,每个服务包都有一个独立的储存库名称,例如 suse/sle12sp3
、suse/sle12sp4
、suse/sle12sp5
。
3.2.2 标签 #
标签有助于识别映像。所有 SLE 容器映像标签均以 com.suse.<product>.<containername>
开头,后跟进一步的规范。openSUSE 容器映像可通过以 org.opencontainers
开头的标签来识别。
com.suse.sle.base
标签受到保护。
通过将每一层添加到基本映像,可使用派生映像中的标签重写基本容器中定义的标签。为了保护映像来源的相关信息,已将标签 com.suse.sle.base
添加到 SLE 容器映像。此标签会指出 SUSE 是相关映像的供应商。由于标签受到保护,它不会被基本映像的任何修改所重写。
与之相反,openSUSE 基本映像中的标签则并未受到保护。例如,org.opencontainers.image.title
始终包含最后添加层的标题。
下面是所有当前定义的标签的列表:
必须由派生映像提供 | 标签 | OCI 批注 | 说明 | 示例 |
---|---|---|---|---|
是 |
org.opencontainers.image.title com.suse.sle.base.title |
org.opencontainers.image.title |
映像标题 |
SUSE Linux Enterprise 15 基本容器 |
是 |
org.opencontainers.image.description com.suse.sle.base.description |
org.opencontainers.image.description |
映像的简短说明 |
包含基于 SUSE Linux Enterprise 15 的容器最小环境的映像。 |
是 |
org.opencontainers.image.version com.suse.sle.base.version |
org.opencontainers.image.version |
映像版本 |
<codestream>.<sp>.<cicnt>.<bldcnt> 15.0.4.2 |
是 |
org.opencontainers.image.created com.suse.sle.base.created |
org.opencontainers.image.created |
映像构建的时间戳 |
2018-07-27T14:12:30Z |
否 |
org.opencontainers.image.vendor com.suse.sle.base.vendor |
org.opencontainers.image.vendor |
映像供应商 |
SUSE LLC |
否 |
org.opencontainers.image.url com.suse.sle.base.url |
org.opencontainers.image.url |
更多信息 | |
是 |
org.openbuildservice.disturl com.suse.sle.base.disturl |
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 |
org.opensuse.reference |
指向此特定映像的参考。不得更改您使用 docker pull <ref.name> 命令获取的映像。 |
registry.suse.com/suse/sle15:4.2 |
3.2.3 标记 #
标记用于添加阐述性信息。与标签不同,标记可以自由定义。标记通常包含容器映像特定版本的相关信息。
如果某个标记存在于多个映像中,则将使用最新的映像。由映像维护者决定指派给容器映像的标记。
常规标记格式为:储存库名称
: 映像版本规范
(通常为版本号)。例如,SUSE Linux Enterprise Server 15 SP1 的最新发布映像的标记将为 suse/sle15:15.1
。
下表显示在 registry.suse.com
上找到的示例 SLE 容器映像标记。其中一些标记会定期更新,因此它们不会批注确切的映像版本,而是会充当占位符。定期更新的标记以粗体标示。
储存库名称:Tag |
说明 |
suse/sle12sp3: latest |
SUSE Linux Enterprise 12 SP3 的最新发布映像。 |
suse/sle12sp3: 2.0.2 |
与 |
suse/sle15: latest |
SUSE Linux Enterprise 15 编码流的最新发布映像。在本例中,与 15.1 和 15.1.1.1 相同。 |
suse/sle15: 15.1 |
SLE 15 SP1 的最新发布映像。 |
suse/sle15: 15.1.1.1 |
与 15.1.1.0 相同,但包含一些更新的软件包。 |
suse/sle15: 15.1.1.0 |
第一个 SUSE Linux Enterprise 15 SP1 映像。 |
3.3 SUSE 注册表 #
官方 SUSE 注册表可从 https://registry.suse.com 获取。它包含经过测试和更新的 SUSE Linux Enterprise 和 SLES 基本容器映像。SUSE 注册表中的所有映像都要经历一个固定的维护过程。使用最新的安全修复定期更新映像。SUSE 注册表可以免费使用,同时还提供有额外功能,可通过在容器主机上的客户订阅获得这些功能。需要订阅容器映像才能收到更新。当前,SUSE 注册表没有 UI 或映像列表。
3.4 比较容器 #
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 SP2 Containers Module 的一部分。您也可以单独安装该软件包。有关安装该软件包的说明,请参见 container-diff 文档。
3.5 本地注册表 #
3.5.1 Portus #
Portus 是一种本地应用程序,可为 Docker 注册表提供图形界面和授权机制。有关 Portus 功能的详细说明,请参见 http://port.us.org/features.html。
您可以使用标准 Docker 容器在 Kubernetes 群集内或在裸机上部署 Portus。有关部署选项以及如何在开发环境中开始使用 Portus 的说明,请参见 http://port.us.org/docs/deploy.html。