3 用于构建映像和管理容器的工具 #
本章简要概述了用于构建映像和管理容器的工具。下文提到的大部分工具都包含在 SUSE Linux Enterprise Server 15 SP4 Containers 模块中。您可以在 SUSE Customer Center 的 Containers 模块中查看完整的软件包列表。
3.1 可供客户使用的工具 #
3.1.1 Docker #
Docker 是一个用于创建和管理容器的系统。其核心是 Docker 开源引擎,这是一种轻量级虚拟化解决方案,可在单台主机上同时运行多个容器。可以使用 Dockerfile 构建 Docker 容器(参见 Dockerfile)。有关 Docker 开源引擎的总体介绍,请参见第 4 章 “Docker 开源引擎概述”。
3.1.2 Podman #
Podman 表示 Pod Manager 工具。它是一个无守护程序的容器引擎,用于在 Linux 系统上开发、管理和运行 Open Container Initiative (OCI) 容器,可以直接取代 Docker。Podman 是 openSUSE Kubic(基于 openSUSE 构建的 Kubernetes 认证发行套件)中的默认容器运行时。有关 Podman 的总体介绍,请参见第 11 章 “Podman 概述”。
3.1.3 Buildah #
Buildah 可帮助您构建 OCI 容器映像。Buildah 是 Podman 的互补工具,podman build
使用它来执行容器映像构建。Buildah 可让您从头开始构建映像,也可使用 Dockerfile 从现有映像构建映像。使用 Buildah 命令行工具和基于 OCI 的底层技术(例如 containers/image
和 containers/storage
)构建的 OCI 映像具有可移植性,因此可以在 Docker 开源引擎环境中运行。
有关安装和使用 Buildah 的信息,请参见第 12 章 “Buildah 概述”。
3.2 SUSE 构建工具 #
3.2.1 Open Build Service #
Open Build Service (OBS) 提供了免费的基础结构,可用于构建和储存 RPM 软件包(包括各种容器格式)。OBS 容器注册表提供由 OBS 构建的所有容器映像的详细列表,使用命令完成将映像提取到您的本地 Docker 环境的操作。您可以根据特定需求修改 OBS openSUSE 容器映像模板,这是创建您自己的容器分支的最简单方法。您可以使用 Dockerfile 通过本机 Docker 工具从现有映像构建容器映像。也可以使用 KIWI 映像构建解决方案从头开始构建映像。
https://openbuildservice.org/2018/05/09/container-building-and-distribution/ 上提供了有关如何在 OBS 上构建映像的说明。
3.2.2 KIWI #
KIWI Next Generation 是一种用于构建映像的多功能工具。除容器映像、常规安装 ISO 映像以及适用于虚拟机的映像之外,KIWI 还可构建通过 PXE 或 Vagrant 盒子引导的映像。KIWI 中的主要构建基块是映像 XML 描述,一个包含 config.xml
或 .kiwi
文件以及脚本或配置数据的目录。使用 KIWI 创建映像的过程是完全自动化的,不需要任何用户交互。映像创建过程所需的任何信息由主要配置文件 config.xml
提供。可以使用 config.sh
和 images.sh
脚本自定义映像。
有关如何安装 KIWI 以及使用 KIWI 构建映像的特定信息,请参见 KIWI 文档。KIWI GitHub 软件源上提供了一系列示例映像描述。
KIWI 手册页提供了使用该工具的相关信息。要访问手册页,请安装 kiwi-man-pages 软件包。
3.3 构建官方 SLE 映像 #
只有使用内部构建服务构建的映像才会被视为官方映像。
https://build.opensuse.org 上未提供官方 SLE 容器映像,从该网站导出的 RPM 与内部 RPM 并不相同。这意味着无法在 https://build.opensuse.org 上构建官方支持的映像。