Docker 运行 桌面环境
Docker run desktop environment
问题最清楚了,
如何在 Docker 远程 容器中启动完整的桌面环境(KDE、XFCE、Gnome 无关紧要)。
我在网上搜索 there are 相关主题的问题,但不一样,它们都是关于如何 运行 GUI application 不是完整的桌面。
我发现了什么:
- 必要的运行Xvfb
- 不知何故运行 例如Xfce 在那个 FrameBuffer
- 允许 x11vnc 共享 运行ning X 环境
但实际上我被困在这里,总是遇到任何错误:
... (EE) Invalid screen configuration 1024x768 for -screen 0
... Cannot open /dev/tty0 (No such file or directory)
您能否提供一些 Docker 文件行以达到目标?
x11docker allows to run desktop environments as well as single GUI applications in docker.
Could you give some Dockerfile lines in order reach the goal?
Example desktop images on docker hub.
x11docker 做了很多设置来保持容器隔离,并提供了一些额外的选项,如硬件加速或 pulseaudio 声音。示例:
x11docker --desktop x11docker/lxde
x11docker也支持network setups with SSH, VNC and HTML5
使用 xpra 设置 SSH 的示例:
read Xenv < <(x11docker --xdummy --display=30 x11docker/lxde pcmanfm)
echo $Xenv && export $Xenv
# replace "start" with "start-desktop" to forward a desktop environment
xpra start :30 --use-display --start-via-proxy=no
从客户端系统连接
xpra attach ssh:HOSTNAME:30 # replace HOSTNAME with IP or host name of ssh server
没有 x11docker:
使用 Xephyr 作为主机上的嵌套 X 服务器的一个非常简短的设置是:
Xephyr :1
docker run -v /tmp/.X11-unix/X1:/tmp/.X11-unix/X1:rw \
-e DISPLAY=:1 \
x11docker/xfce
带有 Xfce 桌面的简短 Dockerfile:
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends xfce4 dbus-x11
CMD startxfce4
那是我一直在寻找的 桌面 的最简单形式 Docker:
FROM ubuntu
RUN apt-get update
RUN apt-get install xfce4 -y
RUN apt-get install xfce4-goodies -y
RUN apt-get purge -y pm-utils xscreensaver*
RUN apt-get install wget -y
EXPOSE 5901
RUN wget -qO- https://dl.bintray.com/tigervnc/stable/tigervnc-1.8.0.x86_64.tar.gz | tar xz --strip 1 -C /
RUN mkdir ~/.vnc
RUN echo "123456" | vncpasswd -f >> ~/.vnc/passwd
RUN chmod 600 ~/.vnc/passwd
CMD ["/usr/bin/vncserver", "-fg"]
不幸的是,我无法用 x11vnc 和 xvfb 解决问题。但是 TigerVNC 结果好多了。
此示例使用 xfce gui 和 运行 vncserver 以及密码 123456 生成容器。 不需要手动覆盖~/.vnc/xstartup因为TigerVNC默认启动X服务器!
至运行服务器:
sudo docker run --rm -dti -p 5901:5901 3ab3e0e7cb
与 vncviewer 连接:
vncviewer -AutoSelect 0 -QualityLevel 9 -CompressLevel 0 192.168.1.100:5901
您也不必关心屏幕分辨率,因为默认情况下它会调整大小以适合您的屏幕:
你可能还会遇到issue with ipc_channel_posix (chrome and other browsers will not work properly) to eliminate this run container with memory sharing:
docker run -d --shm-size=2g --privileged -p 5901:5901 image-name
问题最清楚了,
如何在 Docker 远程 容器中启动完整的桌面环境(KDE、XFCE、Gnome 无关紧要)。
我在网上搜索 there are
我发现了什么:
- 必要的运行Xvfb
- 不知何故运行 例如Xfce 在那个 FrameBuffer
- 允许 x11vnc 共享 运行ning X 环境
但实际上我被困在这里,总是遇到任何错误:
... (EE) Invalid screen configuration 1024x768 for -screen 0
... Cannot open /dev/tty0 (No such file or directory)
您能否提供一些 Docker 文件行以达到目标?
x11docker allows to run desktop environments as well as single GUI applications in docker.
Could you give some Dockerfile lines in order reach the goal?
Example desktop images on docker hub.
x11docker 做了很多设置来保持容器隔离,并提供了一些额外的选项,如硬件加速或 pulseaudio 声音。示例:
x11docker --desktop x11docker/lxde
x11docker也支持network setups with SSH, VNC and HTML5
使用 xpra 设置 SSH 的示例:
read Xenv < <(x11docker --xdummy --display=30 x11docker/lxde pcmanfm)
echo $Xenv && export $Xenv
# replace "start" with "start-desktop" to forward a desktop environment
xpra start :30 --use-display --start-via-proxy=no
从客户端系统连接
xpra attach ssh:HOSTNAME:30 # replace HOSTNAME with IP or host name of ssh server
没有 x11docker:
使用 Xephyr 作为主机上的嵌套 X 服务器的一个非常简短的设置是:
Xephyr :1
docker run -v /tmp/.X11-unix/X1:/tmp/.X11-unix/X1:rw \
-e DISPLAY=:1 \
x11docker/xfce
带有 Xfce 桌面的简短 Dockerfile:
FROM debian:stretch
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends xfce4 dbus-x11
CMD startxfce4
那是我一直在寻找的 桌面 的最简单形式 Docker:
FROM ubuntu
RUN apt-get update
RUN apt-get install xfce4 -y
RUN apt-get install xfce4-goodies -y
RUN apt-get purge -y pm-utils xscreensaver*
RUN apt-get install wget -y
EXPOSE 5901
RUN wget -qO- https://dl.bintray.com/tigervnc/stable/tigervnc-1.8.0.x86_64.tar.gz | tar xz --strip 1 -C /
RUN mkdir ~/.vnc
RUN echo "123456" | vncpasswd -f >> ~/.vnc/passwd
RUN chmod 600 ~/.vnc/passwd
CMD ["/usr/bin/vncserver", "-fg"]
不幸的是,我无法用 x11vnc 和 xvfb 解决问题。但是 TigerVNC 结果好多了。
此示例使用 xfce gui 和 运行 vncserver 以及密码 123456 生成容器。 不需要手动覆盖~/.vnc/xstartup因为TigerVNC默认启动X服务器!
至运行服务器:
sudo docker run --rm -dti -p 5901:5901 3ab3e0e7cb
与 vncviewer 连接:
vncviewer -AutoSelect 0 -QualityLevel 9 -CompressLevel 0 192.168.1.100:5901
您也不必关心屏幕分辨率,因为默认情况下它会调整大小以适合您的屏幕:
你可能还会遇到issue with ipc_channel_posix (chrome and other browsers will not work properly) to eliminate this run container with memory sharing:
docker run -d --shm-size=2g --privileged -p 5901:5901 image-name