Toolbox
Toolbox はオペレーティングシステムとシームレスに統合するコンテナを作成・実行するツールです。ユーザーのホームディレクトリ、Wayland や X11 ソケット、ネットワーク (Avahi 含む)、リムーバブルデバイス (USB スティックなど)、systemd ジャーナル、SSH エージェント、D-Bus、ulimits、/dev、udev データベースなどのアクセスを提供します。
インストール
Toolbox の依存パッケージとして podman がインストールされます。デフォルトでは Podman コンテナは root としてのみ実行可能です。root 以外のユーザーで実行するには Podman#ルートレス Podman を参照してください。基本的に、Toolbox で何か問題が発生した場合、先に Podman に問題が発生していないか確認してください。
toolbox 互換のイメージをビルドしたい場合、buildah もインストールしてください。
Fedora コンテナ
以下のコマンドで Fedora 35 のツールボックスを作成できます:
toolbox create -d fedora -r 35
作成したら、以下のコマンドでツールボックスに入ることができます:
toolbox enter fedora-toolbox-35
Arch コンテナ
上流イメージとして Arch Linux ツールボックスのコンテナは存在しませんが、buildah をインストールしている場合は自分でコンテナをビルドすることができます。
以下の内容で Dockerfile を保存してください:
FROM archlinux/archlinux:latest ENV NAME=arch-toolbox VERSION=rolling LABEL com.github.containers.toolbox="true" \ name="$NAME" \ version="$VERSION" RUN pacman -Syu --noconfirm \ && pacman -S sudo --noconfirm \ && pacman -Scc --noconfirm \ && echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/toolbox CMD ["bash"]
イメージをビルド:
cat Dockerfile | podman build -t arch-toolbox -
Toolbox コンテナを作成:
toolbox create --image arch-toolbox
作成したら、以下のコマンドでツールボックスに入ることができます:
toolbox enter arch-toolbox
トラブルシューティング
X11 アプリが機能しない
X11 アプリケーションを実行したときに、以下のエラーが表示されることがあります:
Authorization required, but no authorization protocol specified Error: Can't open display: :0
この問題を修正するためには、(ホストマシン側で) xorg-xauth を使って X11 と通信するための権限をコンテナに付与してください。以下のコマンドを実行、あるいは Xinit#xinitrc に追加してください:
xauth add "toolbox/unix$DISPLAY" . "$(xauth list | grep "^$(hostname)/unix$DISPLAY\s*MIT-MAGIC-COOKIE-1\s*" | awk '{print $3}')"