问题是最清楚的,< br >如何在Docker远程容器中启动完整的桌面环境(KDE,XFCE,Gnome无关紧要)。
我在互联网上挖掘,有很多关于相关主题的问题,但不一样,它们都是关于如何运行GUI应用程序,而不是完整的桌面。
我发现:
但是我实际上被困在这里了,总是得到一些错误:
... (EE) Invalid screen configuration 1024x768 for -screen 0
... Cannot open /dev/tty0 (No such file or directory)
为了达到目标,你能给一些Dockerfile行吗?
x11docker允许在docker中运行桌面环境以及单个GUI应用程序。
为了达到目标,你能给一些Dockerfile行吗?
docker hub上的桌面图像示例。
x11docker做了很多设置来保持容器隔离,并提供了一些额外的选项,如硬件加速或脉冲音频声音。示例:
x11docker --desktop x11docker/lxde
X11docker还支持SSH、VNC和HTML5的网络设置
使用 XPRA 进行固态混合存储设置的示例:
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生成容器并使用123456密码运行vncserver。无需手动覆盖~/. vnc/xstart,因为TiterVNC默认启动X服务器!
要运行服务器,请执行以下操作:
sudo docker run --rm -dti -p 5901:5901 3ab3e0e7cb
要使用vncviewer进行连接,请执行以下操作:
vncviewer -AutoSelect 0 -QualityLevel 9 -CompressLevel 0 192.168.1.100:5901
您可能还会遇到ipc_channel_posix(chrome 和其他浏览器将无法正常工作)的问题,以消除此运行容器与内存共享:
docker run -d --shm-size=2g --privileged -p 5901:5901 image-name
据我所知,docker不支持在生成容器后更改端口映射的任何命令 但是这个答案说,通过更改主机配置。json文件,我可以更改端口映射。 如何将端口映射分配到现有的Docker容器? 我在Windows WSL2中使用docker桌面。所以hostconfig.json路径与其他答案不同。 hostconfig.json? 在我的例子中,(\wsl$\docker-desite-data\mnt\ws
一旦启动 Docker 桌面 4.4.4 版本 ,Docker 服务停止并出现以下错误
使用Hyper-V在Windows上运行docker desktop时,我有一个名为DockerDesktopVM的虚拟机,其中运行的Linux虚拟机中有它的容器。 然而,当我用WSL引擎运行docker desktop时,我看到它创建了2个WSL发行版。 docker桌面 我可以像其他发行版一样进入docker桌面发行版。 但是,试图对docker桌面数据做同样的操作只会让我大吃一惊。 所以我的
不同的操作系统在各自的桌面应用上提供了不同的特性。例如,在 windows 上应用曾经打开的文件会出现在任务栏的跳转列表,在 Mac 上,应用可以把自定义菜单放在鱼眼菜单上。 本章将会说明怎样使用 Electron APIs 把你的应用和桌面环境集成到一块。 最近文档 (Windows & OS X) Windows 和 OS X 提供获取最近文档列表的便捷方式,那就是打开跳转列表或者鱼眼菜单。
不同的操作系统在各自的桌面应用上提供了不同的特性。例如,在 windows 上应用曾经打开的文件会出现在任务栏的跳转列表,在 Mac 上,应用可以把自定义菜单放在鱼眼菜单上。 本指南介绍如何使用Electron API将应用程序集成到这些桌面环境中。 通知功能 详见通知文档 最近文档 (Windows & macOS) 在Windows 和 macOS 中,打开跳转列表或鱼眼菜单即可轻松访问最近
登录管理器 我们选择 GDM 作为登录管理器 pacman -S gdm 安装完成后,编辑 /etc/rc.conf,在 DAEMONS字段中添加 gdm DAEMONS=(syslog-ng network netfs crond gdm) Xfce 桌面环境 如何选择桌面环境,是一个倍受争议话题。对于新手,我推荐 Xfce ,它有相对玲珑的体形和丰富的功能。 pacman -