Кажется, у меня есть вещь для бритья яков.
У меня XQuartz 2.7.7 (xorg-server 1.15.2) работает на моем Mac с Yosemite. Я могу запустить Xeyes на местном уровне. У меня есть образ Docker с установленными xeyes. Я собрал его с помощью следующего Dockerfile и пометил его kojiromike/xapps
:
FROM debian:jessie
RUN apt-get -qqy update \
&& apt-get -qqy install xauth x11-apps --no-install-recommends
Я попробовал следующие попытки заставить xeyes, запущенные в контейнере, отображаться на моем локальном дисплее:
Я запустил boot2docker с общим доступом к tmp
чтобы получить доступ.X11-Unix. Небольшая дополнительная работа необходима из-за проблемы 678 boot2docker:
boot2docker --vbox-share=/tmp=tmp up
boot2docker ssh <<< 'sudo mount -t vboxsf tmp /tmp'
Сначала я просто попытался отключить механизмы безопасности с помощью интерфейса XQuartz:
Я предположил, что мне не нужно разрешать подключения от сетевых клиентов, потому что я пытался использовать сокет UNIX. Первая попытка:
$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY \
kojiromike/xapps xeyes
Error: Can't open display: unix:0
Далее я попробовал использовать xauth:
$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY \
-e XAUTH="$(xauth nextract - $DISPLAY)" kojiromike/xapps \
sh -c 'printf "%s" "$XAUTH" | xauth nmerge - && xeyes'
Error: Can't open display: unix:0
У меня заканчиваются вещи, чтобы попробовать. Я читал блог Джессики Фразель, но похоже, что она работает непосредственно на хосте Docker, поэтому, возможно, у меня нет проблемы с boot2docker.
Какие другие шаги мне нужно подключить к моему локальному X-серверу через boot2docker из контейнера Docker?