我正在尝试通过 SSH 使用 X 转发来运行安装在基于 Ubuntu 的 Docker 容器中的 GUI 应用程序,但即使我在 /etc/ssh/sshd_config 中安装了 X 转发,它也不会应用 X 转发。(xauth
未定义。) 我尝试在具有相同配置的真实计算机上使用 X 转发,并且效果良好。(已定义。) 真的可以通过 SSH 将 X 转发到 Docker 容器吗?X11Forwarding yes
$DISPLAY
$DISPLAY
答案1
如果容器位于您的本地机器上,则更容易让容器内的程序直接访问您的 X11 套接字。为此,您只需将/tmp/.X11-unix
和挂载~/.Xauthority
到容器中并设置$DISPLAY
。
假设你使用some_user
主目录在 容器中/home/some_user/
运行your_program
some_image
docker run -v /tmp/.X11-unix:/tmp/.X11-unix \
-v ~/.Xauthority:/home/some_user/.Xauthority \
--env DISPLAY=:0 --user some_user some_image your_program