暴露X时Docker和Docker Compose的不同行为
我正在尝试在docker容器中运行X应用程序并显示GUI。暴露X时Docker和Docker Compose的不同行为,docker,docker-compose,Docker,Docker Compose,我正在尝试在docker容器中运行X应用程序并显示GUI。 我使用Docker Compose得到了这个结果,但是当使用Docker run从命令行运行同一个容器时,它失败了 我创建了一个简单的示例来演示正在发生的事情: Dockerfile: FROM ubuntu:latest RUN apt-get update && apt-get install -y x11-apps RUN useradd -ms /bin/bash xvis USER xvis WORKDIR
我使用Docker Compose得到了这个结果,但是当使用
Docker run
从命令行运行同一个容器时,它失败了
我创建了一个简单的示例来演示正在发生的事情:
Dockerfile:
FROM ubuntu:latest
RUN apt-get update && apt-get install -y x11-apps
RUN useradd -ms /bin/bash xvis
USER xvis
WORKDIR /home/xvis
docker-compose.yml:
version: "3"
services:
xeyes-test:
build: .
command: xeyes
volumes:
- /tmp/.X11-unix:/tmp/.X11-unix
environment:
DISPLAY: unix:0
docker compose-up--build
按预期打开xeyes GUI
docker构建-t xeyes docker测试。
docker-run--rm-e显示:unix:0-v/tmp/.X11 unix:/tmp/.X11 unix xeyes docker-test xeyes
给出错误:
错误:无法打开显示:
docker运行命令应为-e display=unix:0
(=
非:
)
如果这不能解决问题,请参阅:我(一致地)从两个方面得到错误。
docker run
命令应该是-e DISPLAY=unix:0
(而不是:
)。如果这不能解决问题,请看:谢谢@DazWilkin,这就是问题所在。这两个系统的语法略有不同,这让我很反感。如果你把你的评论作为回答,我很乐意接受。很高兴它有帮助!