docker vnc 第二次连接问题

docker vnc 2nd time connect issue

我创建了一张 docker 图片。然后我 运行 它与命令 docker run -d -p 5901:5901 -p 2222:22 dockerImageName。 Docker 运行 很好。在此之后,我使用 0.0.0.0:5901 连接到 vnc。它连接正确,我得到一个 GUI。

现在我使用 docker stop containerId 停止 docker。现在,如果我尝试使用命令 docker start containerId 重新 运行 容器,docker 出现但是 当我尝试使用 0.0.0.0:5901 连接到 vnc 时,它说连接意外关闭

我正在使用这张图片https://hub.docker.com/r/thyrlian/android-sdk-vnc/

看起来 thyrlian/android-sdk-vnc 图像中的 VNC 服务器不会以相同的方式第二次启动,因为当容器停止时会留下一个锁定文件。

如果我从那个镜像创建并启动一个容器,vncserver-stderr.log 显示如下。

▸ ~ docker run -d -p 5901:5901 -p 2222:22 --name android-sdk-vnc thyrlian/android-sdk-vnc
212b6de3d3ee71f221e7e190baaf650b779cf351a9c4654db19ef3402cdaa86f
▸ ~ docker exec android-sdk-vnc cat /var/log/supervisord/vncserver-stderr.log
xauth:  file /root/.Xauthority does not exist

New 'X' desktop is 212b6de3d3ee:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/212b6de3d3ee:1.log

停止并启动同一容器后,日志显示如下。

▸ ~ docker stop android-sdk-vnc
android-sdk-vnc
▸ ~ docker start android-sdk-vnc
android-sdk-vnc
▸ ~ docker exec -it android-sdk-vnc cat /var/log/supervisord/vncserver-stderr.log
xauth:  file /root/.Xauthority does not exist

New 'X' desktop is 212b6de3d3ee:1

Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/212b6de3d3ee:1.log


Warning: 212b6de3d3ee:1 is taken because of /tmp/.X1-lock
Remove this file if there is no X server 212b6de3d3ee:1

New 'X' desktop is 212b6de3d3ee:2

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/212b6de3d3ee:2.log

我不熟悉这个 VNC 服务器,但我猜 /tmp/.X1-lock 的锁定文件正以与第一次相同的方式阻止它 运行。

我建议在源 GitHub 存储库中提交问题。您可以在 Docker Hub page for thyrlian/android-sdk-vnc 上的 Source Repository 下找到它。