Red Hat Training
A Red Hat training course is available for RHEL 8
第19章 Buildah でコンテナーイメージの構築
Buildah は、OCI Runtime Specification を満たす OCI コンテナーイメージの構築を容易にします。Buildah を使用すると、作業コンテナーをゼロから作成することも、イメージを開始点として使用して作成することも可能です。イメージは、Containerfile
内の指示を使用して作業コンテナーから作成するか、Containerfile
内のコマンドをエミュレートする一連の Buildah コマンドを使用して作成できます。
19.1. Buildah ツール
Buildah を使用することは、以下の点で、docker コマンドでイメージを作成するのと異なります。
- デーモンなし
- Buildah にはコンテナーランタイムは必要ありません。
- ベースイメージまたは scratch
- 別のコンテナーに基づいてイメージをビルドしたり、空のイメージで始めることができます。
- ビルドツールが外部のもの
Buildah では、イメージ自体にはビルドツールが含まれません。その結果、Buildah は以下のようになります。
- ビルドイメージのサイズを縮小します。
- 作成されたイメージからソフトウェア (gcc、make、yum など) を除外して、イメージのセキュリティーを強化します。
- イメージサイズの縮小により、少ないリソースを使用してイメージを転送できます。
- 互換性
- Buildah は、Dockerfile を使用したコンテナーイメージの構築をサポートしており、Docker から Buildah への移行を容易にします。
注記
Buildah がコンテナーストレージにデフォルトで使用する場所は、CRI-O コンテナーエンジンがイメージのローカルコピーを保存するために使用する場所と同じです。そのため、CRI-O または Buildah で、もしくは buildah コマンドでレジストリーから取得したイメージは、同じディレクトリー構造に保存されます。ただし、CRI-O および Buildah が現在イメージを共有できても、コンテナーを共有することはできません。
関連情報
- Buildah - a tool that facilitates building Open Container Initiative (OCI) container images
- Buildah Tutorial 1: Building OCI container images
- Buildah Tutorial 2: Using Buildah with container registries
- Building with Buildah: Dockerfiles, command line, or scripts
- How rootless Buildah works: Building containers in unprivileged environments