Toolbox

出自 ArchWiki

Toolbox 是一个工具,它允许您创建和运行与操作系统其余部分无缝集成的容器,通过提供对用户主目录、Wayland 和 X11 套接字、网络(包括 Avahi)、可移动设备(如 USB 驱动器)、systemd 日志、SSH 代理、D-Bus、ulimits、/dev 和 udev 数据库等的访问。

安装

安装 toolbox 软件包。

请注意,podman 作为 Toolbox 的依赖项安装。 默认情况下,只能以 root 身份运行 Podman 容器。 请参阅 Podman#无根 Podman 以设置以非 root 用户身份运行容器。 通常,如果您在使用 Toolbox 时遇到问题,请首先确保您的问题不是 Podman 的问题。

如果您想构建自己的 toolbox 兼容镜像,请同时安装 buildah

Fedora 容器

您可以使用以下命令创建一个 Fedora 35 toolbox

$ toolbox create -d fedora -r 35

完成后,您可以使用以下命令进入 toolbox

$ toolbox enter fedora-toolbox-35

Arch 容器

您可以使用以下命令创建一个 ArchLinux toolbox

$ toolbox create

这将创建一个名为 arch-linux-latest 的容器。

完成后,您应该能够使用以下命令进入 toolbox

$ toolbox enter

故障排除

错误:无法启动容器(无根容器)

如果安装了 virtualbox,您可能无法进入无根容器,这是由于 /dev/vboxusb 中的严格权限以及 toolbox 尝试 stat vboxusb。

要解决此问题,请将 /dev/vboxusb 权限从 750 更改为 755

# chmod -R 755 /dev/vboxusb

X11 应用程序无法启动

当尝试从 toolbox 中运行 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 "^$(hostnamectl hostname)/unix$DISPLAY\s*MIT-MAGIC-COOKIE-1\s*" | awk '{print $3}')"

或者,运行

$ xauth nlist | sed -e 's/^..../ffff/' | xauth nmerge -

参见