- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在 docker 容器内运行嵌套的 X-server Xephyr,并直接访问 X11 套接字,但我遇到了奇怪的图形错误,我目前无法理解。
Dockerfile
的内容只是
FROM ubuntu:14.04
RUN apt-get update
RUN apt-get install -qqy xserver-xephyr
# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
构建它
sudo docker build -t xephyrtest .
并运行它
sudo docker run -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix xephyrtest Xephyr :1
输出以下内容:
Xephyr unable to use SHM XImages
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/Type1, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
这里,第一行Xephyr无法使用SHM XImages
似乎是最重要的,因为它没有显示在我的Xephyr正常工作的主机上。
尽管会弹出 Xephyr 窗口,但使用 :1
显示屏的应用程序会出现奇怪的故障。例如。 DISPLAY=:1 gedit
看起来像这样(当鼠标在窗口内移动时,输出会快速变化):
SHM XImages
是什么意思以及如何修复它在容器内不可用的问题?
最佳答案
事实证明,自 Docker 1.5 起,使用命令在 docker 容器中运行 Xephyr 实际上非常容易
sudo docker run -e DISPLAY -v /tmp:/tmp --ipc=host --pid=host xephyrtest Xephyr :1
两个附加参数是
--ipc=host
允许容器使用与主机相同的 IPC 命名空间,因此也可以访问相同的共享内存段--pid=host
让容器查看(并修改)主机的进程。这是必要的,因为 X 服务器端口锁定是通过 /tmp/.Xi-lock
锁定文件(将 i
替换为您的显示端口)完成的,其中包含该服务器的 pid X 服务器在端口 i
上运行。您还必须将 -v/tmp/.X11-unix:/tmp/.X11-unix
更改为 -v/tmp:/tmp
才能除了容器内的 X11 unix 套接字之外,还可以访问锁定文件。
虽然这工作得很好,但您必须注意,两个附加参数和对主机的 /tmp
文件夹的访问权限授予容器重要的权限,这在某些情况下可能会带来安全风险。
关于docker - 在 docker 容器内运行 Xephyr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29509868/
我有两个通过 PyVirtualDisplay 创建的 Xephyr 显示器,当我尝试在它们中打开 xterm 时它工作正常,但许多其他程序将在同一显示器上打开两次。 如果我这样做: DISPLAY=
我正在寻找一种工具来测试我的代码,我总是使用 Xephyr for Xorg 来进行测试。现在 Wayland 有 Xephyr 的替代品吗? 最佳答案 Gnome 3 或 KDE 5 等 Wayla
我试图在 docker 容器内运行嵌套的 X-server Xephyr,并直接访问 X11 套接字,但我遇到了奇怪的图形错误,我目前无法理解。 Dockerfile 的内容只是 FROM ubunt
是否可以使用 Xnest 或 Xephyr 为两个用户创建“共享”桌面到期时间? 也就是说,单个“假/虚拟”X 桌面 session 会呈现到同一 LAN 上两个不同的真实 X 服务器上的窗口中。 是
我的软件设置为运行我做的测试套件: $ make selenium-test 通过这种方式,套件顺利通过。但是,让 Firefox 实例显示在我的桌面上会让人分心。此外,我有时会在移动鼠标时不小心使某
我是一名优秀的程序员,十分优秀!