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 автоматически.)

Другие вопросы по тегам