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 は、現在イメージを共有することはできますが、コンテナーを共有することはできません。