「Buildah」の版間の差分
(関連記事を同期) |
|||
(同じ利用者による、間の1版が非表示) | |||
5行目: | 5行目: | ||
{{Related|Cgroups}} |
{{Related|Cgroups}} |
||
{{Related|Docker}} |
{{Related|Docker}} |
||
+ | {{Related|Podman}} |
||
{{Related|Linux Containers}} |
{{Related|Linux Containers}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
51行目: | 52行目: | ||
{{Note|{{ic|/run/user/0}} へのアクセスでエラーが発生した場合は、''su'' を使用してテストに使用しているユーザーになっている可能性があります。''su'' 以降はそのユーザーとしてログインする必要があります。{{ic|--login}} フラグを指定しないと、{{ic|XDG_RUNTIME_DIR}} やその他の環境変数が正しい値に設定されません。}} |
{{Note|{{ic|/run/user/0}} へのアクセスでエラーが発生した場合は、''su'' を使用してテストに使用しているユーザーになっている可能性があります。''su'' 以降はそのユーザーとしてログインする必要があります。{{ic|--login}} フラグを指定しないと、{{ic|XDG_RUNTIME_DIR}} やその他の環境変数が正しい値に設定されません。}} |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | === WARN[0000] "/" is not a shared mount, this could cause issues or missing mounts with rootless containers === |
||
+ | |||
+ | ルートレスとして実行されている Buildah/Podman はバインドマウントが共有されることを予期しています。プライベートに設定されているかどうかを確認します。 |
||
+ | |||
+ | {{hc|$ findmnt -o PROPAGATION /| |
||
+ | PROPAGATION |
||
+ | private |
||
+ | }} |
||
+ | |||
+ | この場合、{{man|8|mount|Shared subtree operations}} を参照し、マウントを '''一時的に''' 次のものと共有するように設定します。 |
||
+ | |||
+ | # mount --make-shared / |
||
+ | |||
+ | これを '''永続的''' に設定するには、[[fstab#使用法|/etc/fstab]] を編集し、目的のマウントに ''shared'' オプションを追加して再起動します。次のようなエントリが表示されます。 |
||
+ | |||
+ | {{hc|/etc/fstab|2= |
||
+ | # <device> <dir> <type> <options> <dump> <fsck> |
||
+ | UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults,shared 0 1 |
||
+ | }} |
||
== 参照 == |
== 参照 == |
2024年2月14日 (水) 04:15時点における最新版
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
はエラーにならないはずです
トラブルシューティング
ルートレスとして実行されている Buildah/Podman はバインドマウントが共有されることを予期しています。プライベートに設定されているかどうかを確認します。
$ findmnt -o PROPAGATION /
PROPAGATION private
この場合、mount(8) § Shared subtree operations を参照し、マウントを 一時的に 次のものと共有するように設定します。
# mount --make-shared /
これを 永続的 に設定するには、/etc/fstab を編集し、目的のマウントに shared オプションを追加して再起動します。次のようなエントリが表示されます。
/etc/fstab
# <device> <dir> <type> <options> <dump> <fsck> UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults,shared 0 1