在 Docker 容器内使用 X 转发来连接 SSH 服务器

在 Docker 容器内使用 X 转发来连接 SSH 服务器

我正在尝试通过 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_programsome_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

相关内容