Существуют различные статьи, такие как эта, это и это и многое другое, объясняющее, как использовать переадресацию X11 для запуска приложений с графическим интерфейсом в Docker. Я использую контейнер Centos Docker.
Однако все эти подходы используют
docker run
со всеми соответствующими опциями, чтобы визуализировать результат. Любое использование docker run
создает новый образ и выполняет над ним операцию.
Способ работы в том же контейнере состоит в том, чтобы использовать docker start
, за которым следует docker attach
, а затем выполнять команды в приглашении контейнера. Кроме того, скрипт (скажем, xyz.sh), который я собираюсь запустить в контейнере Docker, находится внутри папки MyFiles в корневом каталоге контейнера и также принимает параметр
Итак, есть ли способ запустить скрипт, используя docker start
и/или docker attach
, а также перенаправить его через X11?
Это то, что я пробовал, хотя хотел бы избежать docker run
и вместо этого использовать docker start
и docker 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
Как я могу запустить скрипт xyz.sh в MyFiles в контейнере Docker, используя
docker start
иdocker attach
?Кроме того, поскольку расположение и имя сценария могут различаться, я хотел бы знать, обязательно ли включать каждый из этих путей в системную переменную пути в контейнере Docker или это можно сделать и во время выполнения?