19.2. Buildah 和 Podman 的关系
Buildah 是一个无守护进程工具,用于构建 Open Container Initiative(OCI)镜像。Buildah 的命令复制 Containerfile
的命令。Buildah 提供一个较低级别的接口来构建镜像,而无需 Containerfile
。您还可以使用其他脚本语言来构建容器镜像。虽然您可以使用 Buildah 创建容器,但 Buildah 容器主要是为了定义容器镜像而临时创建的。
Podman 是一个无守护进程工具,用于维护和修改 OCI 镜像,如拉取和标记。您可以创建、运行并维护从这些镜像创建的容器。
一些 Podman 和 Buildah 命令的名称相同,但它们在某些方面有所不同:
run
-
podman run
命令运行容器。buildah run
命令与Containerfile
中的 RUN 指令类似。 commit
- 您可以只使用 Podman 提交 Podman 容器,使用 Buildah 提交 Buildah 容器。
rm
- 您只能使用 Podman 删除 Podman 容器,使用 Buildah 删除 Buildah 容器。
注意
Buildah 的默认容器存储对 root 用户为 /var/lib/containers/storage
,对非 root 用户为 $HOME/.local/share/containers/storage
。这与 CRI-O 容器引擎用来存储镜像本地副本的位置相同。因此,通过 CRI-O 或 Buildah 从注册中心拉取的镜像,或由 buildah
命令提交的镜像存储在同样的目录结构中。但是,即使 CRI-O 和 Buildah 目前可以共享镜像,它们也无法共享容器。