有各种各样的文章,如this,this和this等等,解释了如何使用 X11 转发在 Docker 上运行 GUI 应用程序。我正在使用 Centos Docker 容器。
然而,所有这些方法都使用
docker run
使用所有适当的选项以可视化结果。任何使用docker run
都会创建一个新图像并在此基础上执行操作。
在同一个容器中工作的一种方法是在容器提示符下使用docker start
然后docker attach
执行命令。此外,我打算在 Docker 容器上运行的脚本(比如说 xyz.sh)位于容器根目录的 MyFiles 文件夹中,并且还接受一个参数
那么有没有办法使用docker start
和/或docker attach
同时X11转发它来运行脚本?
这是我尝试过的,虽然想避免docker run
使用docker start
anddocker attach
sudo docker run -it \
--env="DISPLAY" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
centos \
cd MyFiles \
./xyz.sh param1
export containerId='docker ps -l -q'
这反过来会引发如下错误 -
/usr/bin/cd: line 2: cd: MyFiles/: No such file or directory
如何使用
docker start
and在 Docker 容器上的 MyFiles 下运行脚本 xyz.shdocker attach
?此外,由于脚本的位置和名称可能会有所不同,我想知道是否必须将这些路径中的每一个都包含在 Docker 容器的系统路径变量中,或者也可以在运行时完成?