Buildah

From ArchWiki
Jump to navigation Jump to search

関連記事

BuildahOpen Container Initiative (OCI) コンテナイメージの生成を補助するツールです。Buildah パッケージが提供するコマンドラインツールで以下のことができます:

  • スクラッチから、または既存イメージからコンテナを作成
  • 動作中のコンテナから、あるいは Dockerfile からイメージを作成
  • OCI イメージ形式や伝統的な docker イメージ形式でイメージを作成可能
  • 動作中のコンテナのルートファイルシステムをマウントして操作
  • 動作中のコンテナのルートファイルシステムをアンマウント
  • コンテナのルートファイルシステムの中身をファイルシステムレイヤーとして使用して新しいイメージを作成
  • 動作中のコンテナあるいはイメージを削除
  • ローカルコンテナの名前を変更

コンテナの生成で一番有名な対抗アプリケーションは docker です。Buildah はコンテナの実行には使えません。実行したい場合は podman があります。

インストール

buildah パッケージをインストールしてください。また、開発版を buildah-gitAUR パッケージでインストールすることもできます。

設定

非特権コンテナの生成のサポートを有効化 (任意)

Buildah を使って非特権コンテナを生成したい場合、以下の設定が必要です。

まず、カーネルにユーザー名前空間のサポートが必要です (CONFIG_USER_NS が有効になっているカーネル)。Arch Linux のカーネルは全て CONFIG_USER_NS に対応しています。しかしながら、セキュリティ上の問題から、デフォルトの Arch カーネルではユーザー名前空間は root ユーザーでのみ有効になっています。

通常ユーザーで非特権コンテナを実行するために sysctl 設定 kernel.unprivileged_userns_clone を有効にしてください。sysctl kernel.unprivileged_userns_clone=1 を実行することで実行中のセッションで有効にしたり、sysctl.d(5) で永続的に有効化できます。

そして、/etc/subuid/etc/subgid を作成して、コンテナを実行するユーザーのコンテナ化する uid/gid の組み合わせのマッピングを作ります。root ユーザー (と systemd システムユニット) と buildah ユーザーの例:

/etc/subuid
root:100000:65536
buildah:100000:65536
/etc/subgid
root:100000:65536
buildah:100000:65536

参照