免责声明:这个问题已经在 Stackoverflow 和其他场所以不同的形式提出,但我无法解决。所以我希望有人能帮我一劳永逸地解决这个问题。
xhost由于安全问题,我需要在我的 Docker 容器上启用 x11 转发工作而不使用任何东西。我想将/tmp/.X11-unix套接字公开~/.Xauthority给 Docker 容器,以便它可以像客户端一样使用它们连接到 X 服务器。
我可以将我的问题归结为一个简单的问题Dockerfile。我有一个docker-compose.yml来运行它Dockerfile。
Dockerfile:
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y x11-apps xauth
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
version: '2.3'
services:
test:
build: .
command: /bin/bash
environment:
DISPLAY: $DISPLAY
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
- ~/.Xauthority:/root/.Xauthority
Run Code Online (Sandbox Code Playgroud)
这两个文件位于同一文件夹中。跑步:
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y x11-apps xauth
Run Code Online (Sandbox Code Playgroud)
如果您在主机系统中运行xhost +,则 X 服务器将免除身份验证,并且xclock程序将成功运行。否则,它会抱怨Error: Can't open display: …