当我在主机设备上运行时,docker 容器中的 gui 应用程序运行良好docker run -it --net=host -e DISPLAY=$DISPLAY <image>
。xhost +
但是,当涉及到rootless dockerd(DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sock
使用docker cli时使用env)时,gui应用程序无法工作并提示
Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0
那么root和rootless docker容器在连接主机显示时有什么区别以及如何在rootless docker容器中使用gui呢?
答案1
在 Rootless Docker 中,即使使用--net=host
.
主机网络 (
docker run --net=host
) 也在 RootlessKit 内部命名。
您可以通过共享 XServer 套接字进行显示。
docker run -it --volume=/tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=$DISPLAY <image>
没有必要xhost +
,因为无根容器中的UID已映射到主机上的docker执行用户。