Запуск приложений с графическим интерфейсом в док-контейнере с хостом MacBookPro
Я пытался следовать инструкциям на https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/ о запуске приложений с графическим интерфейсом в док-контейнере внутри хост MacBookPro (с использованием инструментов Docker).
Я создал простой Docker-контейнер, используя Fedora 23 и с установленным Firefox.
Я пытаюсь запустить Firefox, и примерно через минуту я получаю следующую ошибку:
Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
У кого-нибудь есть подсказка, что означает ошибка и / или как ее исправить?
4 ответа
Я решил проблему, заменив мой MacBookPro на ноутбук с Linux, и теперь он работает.
На Mac вы можете найти следующие шаги полезными:
- Установить XQuartz
- Откройте его, перейдите в настройки> Безопасность и установите флажок, чтобы разрешить подключения от сетевых клиентов.
- перезагружать
- Запустите XQuartz (из папки приложений или с помощью
open -a XQuartz
) - Разрешить входящие соединения с вашего IP с
xhost + $IP
(см. примечание 1) - Запустите firefox в вашем док-контейнере (см. Примечание 2)
Примечание 1: Вот хитрый трюк для получения вашего IP-адреса:
export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
Примечание 2: и пример команды docker run для запуска firefox
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
Я видел ту же ошибку и, к сожалению, перезагрузка не решила проблему для меня. Тем не менее, я смог заставить его работать, смонтировав и указав на мой локальный файл.Xauthority:
IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
docker run --rm --name firefox -e DISPLAY=$IP:0 -e XAUTHORITY=/.Xauthority --net host -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/.Xauthority:/.Xauthority jess/firefox
Конечно, это предполагает, что ваш материал XQuarts/xhost правильно настроен в соответствии с этим ответом