3

Кажется, у меня есть вещь для бритья яков.

У меня 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?

1 ответ1

0

Посмотрите на https://stackoverflow.com/a/36190462/304690 в конкретном наборе:

DISPLAY=$IPADDR:$DISP_NUM

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .