构建完整的 Ubuntu 桌面 docker 镜像

Posted

技术标签:

【中文标题】构建完整的 Ubuntu 桌面 docker 镜像【英文标题】:Build a full Ubuntu desktop docker image 【发布时间】:2015-10-05 10:52:59 【问题描述】:

我想构建一个完整版本的 Ubuntu 14 桌面作为gui applications 的基础映像,我知道如何通过 debootstrap 在 Ubuntu 桌面版本上构建,如 https://docs.docker.com/articles/baseimages/ 中所述,但那是一个最小的 Linux版本和某些GUI应用程序无法完美运行,因为缺少一些基本组件,例如字体系列,所以我想要一个基本图像的完全控制权,谢谢!

【问题讨论】:

How to open Ubuntu GUI inside a Docker image的可能重复 【参考方案1】:

fcwu/docker-ubuntu-vnc-desktop

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

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

然后:

访问:http://127.0.0.1:6080/#/,它运行 noVNC 更有限的 javascript VNC 客户端

运行:

sudo apt-get install tigervnc-viewer
xtigervncviewer :5900

然后在vinagre 内,您可能希望go into full screen mode 能够看到完整的桌面

我也尝试过vinagre,但在 YouTube 上滚动 Firefox 时会慢很多。

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

docker start ubvnc

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

docker stop ubvnc

您必须等待几秒钟才能启动客户机上的 VNC 服务器,然后才能连接。

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

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

Firefox 不在乎。

TODO:没有音频。 --device /dev/snd 没有帮助:

How to play sound in a docker container https://forums.docker.com/t/how-to-get-sound/36527 https://github.com/fcwu/docker-ubuntu-vnc-desktop/issues/49

另见:

Can you run GUI applications in a Docker container? How to open Ubuntu GUI inside a Docker image

在 Ubuntu 19.04 主机上测试,fcwu/docker-ubuntu-vnc-desktopdorowu/ubuntu-desktop-lxde-vnc 图像 ID:70516b87e92d。

【讨论】:

知道为什么会出现这个错误吗? standard_init_linux.go:187: exec 用户进程导致“exec 格式错误” @wbt11a 抱歉,以前没有遇到过,我会看看:***.com/questions/51508150/… 如果是你的情况,尤其是 Windows 细节。【参考方案2】:

我没有看到它的好处,但是 impossible n'est pas français(impossible 不是法语)。

Docker Desktop 是一种为您提供 X11 服务器以使用 SSH 进行连接的方式。

此 Dockerfile 创建一个 docker 映像,一旦执行,它就会创建一个运行 X11 和 SSH 服务的容器。 ssh 用于转发 X11 并为您提供 docker 容器和本地机器之间的加密数据通信。

【讨论】:

不可能是法语....

以上是关于构建完整的 Ubuntu 桌面 docker 镜像的主要内容,如果未能解决你的问题,请参考以下文章

构建Ubuntu+GCC+jdk8的Docker镜像

Docker -- 自定义镜像(Dockerfile)基于Ubuntu镜像构建一个新镜像基于java:8-alpine镜像将一个Java项目构建为镜像

添加ssh服务构建新镜像-docker commit 方式01

Docker构建镜像过于缓慢解决-----Docker构建服务之部署和备份jekyll网站

经验分享让你的docker桌面化

docker镜像容器