小编sha*_*133的帖子

从 docker 连接到 X11 服务器,不使用 xhost,但使用 xauth

免责声明:这个问题已经在 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: …

x11 x11-forwarding docker docker-compose

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

docker ×1

docker-compose ×1

x11 ×1

x11-forwarding ×1