摘要:本文介绍了如何在 Docker 容器中运行 GUI 应用程序。通过使用 x11docker 应用程序,可以轻松启动带有桌面环境的 GUI 容器,并提供了许多功能,如 GPU 硬件加速、声音、剪贴板共享等。文章还提供了安装 Docker 运行时引擎和 x11docker 的详细步骤,并演示了使用 VLC 媒体播放器在容器中运行 GUI 应用程序的示例。
本文译自:https://thenewstack.io/run-gui-applications-as-containers-with-x11docker/ 作为开发人员,可能需要使用 GUI 容器进行工作。如果是这种情况,您会很快发现,传统的 Docker 运行时引擎并不支持运行 GUI 应用程序(除非它们是基于 Web 的类型)。当您想要开发容器化的 GUI 应用程序时,该怎么办呢? 幸运的是,有许多第三方应用程序可以在桌面上轻松启动 GUI 容器。正如您可能预期的那样,这需要一个桌面环境(否则,在更传统的基于服务器的设置上进行开发)。其中一个应用程序叫做 x11docker。顾名思义,此应用程序与 Linux X 显示服务器配合使用(这意味着需要一个 Linux 发行版才能使其正常工作)。 x11docker 应用程序包括以下功能:
- • GPU 硬件加速
- • PulseAudio 或 ALSA 声音
- • 剪贴板共享
- • 打印机和摄像头访问
- • 持久的主目录
- • Wayland 支持
- • 语言区域设置创建
- • 容器内的多个 init 系统和 DBus
- • 支持多个容器运行时和后端(包括 Podman)
所需的工具
正如上面提到的,需要运行中的基于 Ubuntu 的 Linux 桌面发行版实例。还需要一个具有 sudo 权限的用户。就这些。安装 Docker
首先,使用传统的方法安装 Docker 运行时引擎。首先要做的是使用以下命令将官方 Docker GPG 添加到系统中:接下来,必须添加 Docker 仓库,以便安装软件。使用以下命令完成此操作:
curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
添加仓库后,使用以下命令安装一些依赖项:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] <https://download.docker.com/linux/ubuntu> $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
使用以下命令更新 apt:
sudo apt-get install apt-transport-https ca-certificates curl gnupg lsb-release -y
现在,可以使用以下命令安装 Docker:
sudo apt-get update
为了能够在不使用 sudo 的情况下运行 Docker 命令(这可能存在安全风险),请使用以下命令将用户添加到 docker 用户组中:
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
注销并重新登录以使更改生效。 如果希望采用快速方式,可以使用以下命令安装 Docker:
sudo usermod -aG docker $USER
要能够以无特权方式运行 Docker,请执行以下命令:
sudo apt-get install curl wget uidmap -y
wget -qO- https://get.docker.com/ | sudo sh
dockerd-rootless-setuptool.sh install
如何安装 x11docker
在安装 x11docker 之前,必须安装一些依赖项。可以使用以下命令完成此操作:接下来,使用以下命令安装 x11docker:
sudo apt-get install xpra xserver-xephyr xinit xauth xclip x11-xserver-utils x11-utils -y
然后,可以使用以下命令更新 x11docker:
curl -fsSL https://raw.githubusercontent.com/mviereck/x11docker/master/x11docker | sudo bash -s -- --update
sudo x11docker --update
如何使用 x11docker
安装了 x11docker 之后,就可以开始测试了。使用 VLC 应用程序容器进行测试。首先,使用以下命令拉取镜像:拉取镜像后,使用以下命令(借助 x11docker)运行 VLC:
docker pull jess/vlc
应该会看到 VLC 窗口打开,准备好供使用(图 1)。它的速度比直接安装在桌面上要慢一些,但除此之外,它应该按预期工作。
x11docker --pulseaudio --share=$HOME/Videos jess/vlc
引用链接
x11docker: https://github.com/mviereck/x11docker