如何在 Docker 图像中打开 Ubuntu GUI

How to open Ubuntu GUI inside a Docker image

我已经在 Windows 下载了 Ubuntu 图像到 Docker。

我可以 运行 Ubuntu 通过:

docker run -it ubuntu

我只看到 root,但没有看到 Ubuntu GUI。我如何像在 VM 中 运行 一样为该图像和 运行 应用程序安装或配置 GUI?

通常,使用 Docker 进行开发的方法是将 IDE 保留在工作站上,并使用源代码生成的二进制文件构建映像。

您可以在 domeide.github.io/ (Docker meets the IDE!)
中找到许多此类工作流程的示例(本地编译,部署在 Docker 个容器中) 例如:Docker Tools for VisualStudio 允许您的编辑器与 Docker 进程紧密集成。

(但这是针对 Visual Studio 2015,而不是 Visual Studio 代码。)

您可以直接将 Docker 容器连接到您的 X 服务器。

参见 Stack Overflow 问题 Can you run GUI applications in a Docker container?

fcwu/docker-ubuntu-vnc-desktop

https://github.com/fcwu/docker-ubuntu-vnc-desktop 提供了一个方便的设置:

sudo docker run --name ubvnc -p 6080:80 -p 5900:5900 dorowu/ubuntu-desktop-lxde-vnc:bionic

然后在主机上:

要退出,只需在终端上杀死 docker。并重启机器:

sudo docker start ubvnc

然后重新连接 VNC。然后退出机器:

sudo docker stop ubvnc

您必须等待几秒钟,以便来宾上的 VNC 服务器启动,然后才能连接。

来宾中的 Chromium 不会从菜单启动。如果您尝试从命令行启动它,它会解释原因:

Running as root without --no-sandbox is not supported. See https://crbug.com/638180.

所以只需 运行 从 CLI 使用:

chromium-browser --no-sandbox

但是 Firefox 并不关心。

待办事项:没有音频。 --device /dev/snd 没有帮助:

编辑:他们为其添加了一个部分:https://github.com/fcwu/docker-ubuntu-vnc-desktop/tree/e4922ce92f945fc482994b7a0fd95ca5de7295b3#sound-preview-version-and-linux-only

另请参阅:

  • Can you run GUI applications in a Linux Docker container?

测试于:

  • Ubuntu19.04主机,fcwu/docker-ubuntu-vnc-desktopdorowu/ubuntu-desktop-lxde-vnc图片id:70516b87e92d.
  • Ubuntu 21.10 主机,dorowu/ubuntu-desktop-lxde-vnc:focal (Ubuntu 20.04)