Toolbox
Toolbox 是一个工具,它允许您创建和运行与操作系统其余部分无缝集成的容器,通过提供对用户主目录、Wayland 和 X11 套接字、网络(包括 Avahi)、可移动设备(如 USB 驱动器)、systemd 日志、SSH 代理、D-Bus、ulimits、/dev 和 udev 数据库等的访问。
安装
请注意,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 -
参见
- 官方网站
- Github 仓库
- Fedora Silverblue 文档
- toolbx-images - 社区维护的容器镜像,与 Toolbox 一起使用,可通过 quay.io 获取预构建镜像
- duhdugg 的自定义 toolbox - 一组自定义脚本,用于使用目录结构构建 toolbox 容器,使其易于修改