Как Docker запускает графический интерфейс?

El problema es que los datos no se leen desde stdinsino desde la terminal de control:

unlock
Unlocks an encrypted device. The passphrase will be requested from the controlling terminal and upon successful completion, the cleartext device will be printed to standard output.

Puede usar el trabajo -alrededor de frostschutz sugerido o usar trucos para hacer que la entrada de la tubería aparezca en la terminal de control, p. con expecto socat.

pass thumbdrive-password |
    head -n 1 |
    socat - EXEC:'udisksctl unlock -b /dev/sdb',pty,setsid,ctty
0
12.03.2019, 21:27
1 ответ

Если вы используете Linux, смонтируйте /tmp/.X11 -unix в настройках докера (в команде запуска:-v /tmp/.X11 -unix :/tmp/. X11 -unix ), и вы сможете отображать любой тип графического интерфейса без каких-либо других опций. Совместное использование этого файла с докером разрешает любой тип графического интерфейса.

Если вы не хотите этого делать, вы можете ввести команду xhost+ как обычный пользователь Linux, а затем из Docker использовать экспорт DISPLAY=IP :0.0 (или любой другой, но IP не может быть 127.0. 0,1 даже в местных ).

xhost+ позволяет любому хосту, экспортировать DISPLAY, совместно использовать дисплей на «удаленном» компьютере.

Если вы используете докер на локальном хосте Windows, все порты в основном открыты, но вам нужен специальный X-сервер для отображения Ubuntu на рабочем столе Windows. (VcXsrv — ваш друг, поскольку это специальный X-сервер, скомпилированный с помощью Visual C++. 2012 )и команда export DISPLAY=IP :0.0 должны быть введены перед запуском GUI.

4
28.01.2020, 02:22

Теги

Похожие вопросы