第 19 章 使用 Buildah 构建容器镜像


Buildah 有助于构建符合 OCI 运行时规范 的 OCI 容器镜像。使用 Buildah,您可以创建一个可运行的容器,可以从头开始,也可以使用一个镜像作为起点。您可以使用 Containerfile 中的说明从工作容器创建镜像,或使用 Containerfile 中发现的模拟命令的一系列 Buildah 命令。

19.1. Buildah 工具

Buildah 是一个命令行工具,用于创建 Open Container Initiative(OCI)容器镜像,以及从镜像创建一个工作容器。使用 Buildah,您可以以不同的方式创建容器和容器镜像:

从头开始创建容器镜像
您可以使用 buildah from scratch 命令从头开始创建最小容器镜像。最小容器镜像有以下优点:避免包括任何不必要的文件或依赖项、增强了安全性并优化了性能。如需更多信息,请参阅 使用 Buildah 从头开始创建镜像
从容器镜像创建容器
您可以使用 buildah from <image> 命令从容器镜像创建一个正常工作的容器。然后,您可以使用 buildah mountbuildah copy 命令修改容器。如需更多信息,请参阅 使用 Buildah 处理容器
从现有容器创建容器镜像
您可以使用 bulidah commit 命令创建一个新的容器镜像。另外,您可以使用 buildah push 命令将新创建的容器镜像推送到容器注册中心。如需更多信息,请参阅 使用 Buildah 处理容器
从 Containerfile 中的指令创建容器镜像
您可以使用 buildah buildbuildah bud 命令从 Containerfile 中的指令构建容器镜像。如需更多信息,请参阅 使用 Buildah 从 Containerfile 构建镜像

使用 Buildah 与使用 docker 命令构建镜像在以下方面有所不同:

无守护进程
Buildah 不需要容器运行时守护进程。
基础镜像或空镜像
您可以基于另一个容器构建镜像,或使用一个空镜像从头开始构建镜像。
镜像大小减少了
Buildah 镜像不包括构建工具,如 gccmakednf。因此,镜像更安全,您可以更轻松地传输镜像。
兼容性
您可以轻松地从 Docker 迁移到 Buildah,因为 Buildah 支持使用 Containerfile 构建容器镜像。您可以在 Containerfile 中使用与 Dockerfile 中相同的命令。
交互式镜像构建
您可以通过创建并提交对容器的更改,以交互方式构建镜像。
简化的镜像创建
您可以创建 rootfs,生成 JSON 文件,并使用 Buildah 构建符合 OCI 的镜像。
灵活性
您可以直接在 Bash 中编写容器构建脚本。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat