Buildah
Buildah は Open Container Initiative (OCI) コンテナイメージの生成を補助するツールです。Buildah パッケージが提供するコマンドラインツールで以下のことができます:
- スクラッチから、または既存イメージからコンテナを作成
- 動作中のコンテナから、あるいは Dockerfile からイメージを作成
- OCI イメージ形式や伝統的な docker イメージ形式でイメージを作成可能
- 動作中のコンテナのルートファイルシステムをマウントして操作
- 動作中のコンテナのルートファイルシステムをアンマウント
- コンテナのルートファイルシステムの中身をファイルシステムレイヤーとして使用して新しいイメージを作成
- 動作中のコンテナあるいはイメージを削除
- ローカルコンテナの名前を変更
コンテナの生成で一番有名な対抗アプリケーションは docker です。Buildah はコンテナの実行には使えません。実行したい場合は podman があります。
インストール
buildah および podman パッケージを インストール して下さい、または開発バージョンの場合は buildah-gitAUR
非 root ユーザー として実行する場合は、パフォーマンスとストレージスペースの効率を向上させるために、fuse-overlayfs もインストールします。
設定
特権のないコンテナの構築サポートを有効にする
Buildah を使用して 特権のない コンテナを構築したいユーザーは、初めて podman を実行する前に 追加のセットアップ手順を完了する必要があります。
最後に、/etc/subuid
と /etc/subgid
の両方を作成して、コンテナを実行できる各ユーザーのコンテナ化された UID/GID ペアへのマッピングを含めます。[1] 以下の例は、root ユーザー (および systemd システムユニット) とユーザー buildah
の例です。:
/etc/subuid
buildah:100000:65536
/etc/subgid
buildah:100000:65536
上記の変更を適用する前に podman を実行した場合、特権のないユーザーとしてイメージをプルしようとするとエラーが発生します。これを修正するには、podman system Migrate
を実行します。
すべてがうまくいった場合、ログアウトして再度ログインした後、buildah Images
はエラーにならないはずです