如何在远程服务器上的 Docker 容器内运行代码 GUI?

问题描述 投票:0回答:2

我在 Linux 服务器上创建了一个 Docker 容器。我使用 VSCode 从笔记本电脑连接到此容器,并且可以运行一些代码。但是,我无法运行某些需要 GUI 的程序,例如 gedit。如何将其配置为从本地计算机上的容器运行基于 GUI 的应用程序?

我知道我可以通过X11实现这一点,但我不知道如何配置它。

docker x11 remote-server
2个回答
0
投票

解决方案:在Linux服务器上,我运行

xhost +
echo $DISPLAY
,以查看可用的DISPLAY端口。然后我使用以下命令构建一个容器

docker run -id --name your_env --net=host -e DISPLAY=:15.0 -v $HOME/.Xauthority:/root/.Xauthority -e NVIDIA_VISIBLE_DEVICES=all -e NVIDIA_DRIVER_CAPABILITIES=all -v /home/zsx/workspace:/workspace --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" --gpus all --env="QT_X11_NO_MITSHM=1" your_images /bin/bash`

注: 在命令 DISPLAY= XX 中,XX 应该是从

echo $DISPLAY
获得的值。然后就可以在容器中运行GUI程序了。

然而,我又遇到了另一个问题。如果DISPLAY端口改变,带有GUI的程序将无法运行。有什么解决办法吗?


0
投票

我按照@love7的建议做了同样的事情,但只是用

-e DISPLAY=:15.0
替换了
-e DISPLAY=$DISPLAY
,它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.