重置 VPN 后,远程 Docker 容器上的 X11 停止工作

重置 VPN 后,远程 Docker 容器上的 X11 停止工作

我在 ubuntu 18.04 上运行,并使用 VPN 将一台“操作员”机器接入具有“测试”机器的网络。

测试机器运行一个 Docker 容器,该容器包含一个 GUI 应用程序,我通过 X11 转发该应用程序。我在操作员机器上使用 SSH 来 SSH 进入测试机器。然后,我运行 Docker 容器。通常,当我运行 Docker 容器时,GUI 会显示在我的“操作员”机器上。

但是,我注意到,一旦我断开 VPN 并重新连接,就会出现“无法连接到显示器 $DISPLAY”错误。

我需要从图像创建一个新的容器才能使 X11 再次工作。

以下是我启动它的方法:

SOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
xauth nlist $DISPLAY | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
chmod 777 $XAUTH
sudo docker run  --gpus all -it --privileged --network=host -e DISPLAY=$DISPLAY -v $XSOCK:$XSOCK -v $XAUTH:$XAUTH -e XAUTHORITY=$XAUTH  image

在这种情况下,“测试”机器或 docker 容器没有任何变化。即使 VPN 重新连接为我分配了与之前相同的 IP,它仍然会出现此问题。

相关内容