Docker: запуск приложения с удаленного X-сервера
В настоящее время я запускаю свое приложение в контейнере вместе с Xvfb и X11VNC. Все это прекрасно работает, и я могу видеть GUI через любой VNC-клиент. Тем не менее, я хотел бы запустить Xvfb и X11VNC в контейнере A, а мое приложение в контейнере B.
Контейнер A запускается, например, так: docker run -it --rm --name x11 -p 6000-6100:6000-6100 myimagewithXvfb
В B I установите DISPLAY=A, чтобы указать на X-сервер (XVfb) в контейнере A.
При запуске B I, например, xeyes, но я получаю сообщение об ошибке: root@a1ec4b67e98f:/# xeyes Ошибка: невозможно открыть дисплей: 10.1.0.1 root@a1ec4b67e98f:/# echo $DISPLAY 10.1.0.1
Также использование 10.1.0.1:0 не имеет значения.
В любом случае, вопрос в том, как заставить это работать, если это вообще возможно?
1 ответ
Без дополнительной информации трудно сказать наверняка, но я предполагаю, что ваша проблема связана с авторитетом X. Вы можете разрешить клиентам подключаться без контроля доступа с помощью команды xhost:
A> xhost +
B> export DISPLAY=10.1.0.1:0
B> xeyes
Более безопасный способ заключается в контейнере A SSH в контейнер B, например:
A> ssh -Y B
B> xeyes
(Здесь вам не нужно вручную устанавливать переменную DISPLAY env., Поскольку она устанавливается SSH автоматически.)