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 容器。
注意
对于 root 用户,Buildah 的默认容器存储是 /var/lib/containers/storage,对于非 root 用户是 $HOME/.local/share/containers/storage。这与 CRI-O 容器引擎用来存储镜像本地副本的位置相同。因此,通过 CRI-O 或 Buildah 从注册中心拉取的镜像,或由 buildah 命令提交的镜像存储在相同的目录结构中。但是,即使 CRI-O 和 Buildah 目前可以共享镜像,它们也无法共享容器。