19.2. Buildah と Podman の関係
Buildah は、Open Container Initiative (OCI) イメージをビルドするためのデーモンレスツールです。Buildah のコマンドは、Containerfile のコマンドを再現したものです。Buildah は、Containerfile を必要とせずにイメージをビルドするための下位レベルのインターフェイスを備えています。他のスクリプト言語を使用してコンテナーイメージをビルドすることもできます。Buildah を使用してコンテナーを作成することもできますが、Buildah コンテナーは、主にコンテナーイメージを定義する目的で一時的に作成されます。
Podman は、プルやタグ付けなど、OCI イメージを保守および変更するためのデーモンレスツールです。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 は、現在イメージを共有することはできますが、コンテナーを共有することはできません。