如何在 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
然后在主机上:
访问:http://127.0.0.1:6080/#/ which runs a noVNC更受限JavaScriptVNC客户端
运行:
sudo apt-get install tigervnc-viewer
xtigervncviewer :5900
要进入全屏模式,请按 F8 并单击菜单项,或者只需按 F8 然后按 T:https://superuser.com/questions/285843/how-do-i-switch-in-out-of-fullscreen-mode-from-the-command-line-in-realvnc您可能需要关闭并重新打开屏幕才能使图像变大。
我也试过 vinagre
,但在 YouTube 上滚动 Firefox 时,它的速度要慢得多。
在 vinagre
中,您可能希望 go into full screen mode 能够看到完整的桌面
要退出,只需在终端上杀死 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://forums.docker.com/t/how-to-get-sound/36527
- https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/49
编辑:他们为其添加了一个部分: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-desktop
,dorowu/ubuntu-desktop-lxde-vnc
图片id:70516b87e92d.
- Ubuntu 21.10 主机,
dorowu/ubuntu-desktop-lxde-vnc:focal
(Ubuntu 20.04)
我已经在 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
然后在主机上:
访问:http://127.0.0.1:6080/#/ which runs a noVNC更受限JavaScriptVNC客户端
运行:
sudo apt-get install tigervnc-viewer xtigervncviewer :5900
要进入全屏模式,请按 F8 并单击菜单项,或者只需按 F8 然后按 T:https://superuser.com/questions/285843/how-do-i-switch-in-out-of-fullscreen-mode-from-the-command-line-in-realvnc您可能需要关闭并重新打开屏幕才能使图像变大。
我也试过
vinagre
,但在 YouTube 上滚动 Firefox 时,它的速度要慢得多。在
vinagre
中,您可能希望 go into full screen mode 能够看到完整的桌面
要退出,只需在终端上杀死 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://forums.docker.com/t/how-to-get-sound/36527
- https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/49
编辑:他们为其添加了一个部分: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-desktop
,dorowu/ubuntu-desktop-lxde-vnc
图片id:70516b87e92d. - Ubuntu 21.10 主机,
dorowu/ubuntu-desktop-lxde-vnc:focal
(Ubuntu 20.04)