Отображение окна tkinter из докера

У меня есть док-контейнер, который открывает окно tkinter, но продолжает падать, потому что не может подключиться к дисплею хост-компьютера. Ответ, данный в этом сообщении, предлагает привязать монтирование X- 11 для контейнера -v /tmp/.X11-unix:/tmp/.X11-unix:ro и задайте для его переменной среды отображения значение хост-компьютера -e DISPLAY=$DISPLAY, но поскольку это оба пути/переменные, специфичные для Unix, они не будут работать в других операционных системах. Как я могу передать информацию об отображении в контейнер, чтобы tkinter мог использовать ее таким образом, который не зависит от операционной системы хоста?


person G Warner    schedule 01.08.2017    source источник


Ответы (1)


Вы не сможете получить док-контейнер на основе X11 для отображения на дисплее, отличном от X11. Если вы хотите, чтобы этот док-контейнер мог открывать окна на вашем дисплее, вам нужно запустить X11. Существуют серверные реализации как для Windows, так и для OSX.

person Bryan Oakley    schedule 01.08.2017
comment
Итак, нет ли способа заставить мой док-контейнер отображать окно в любой ОС? Если это так, то это кажется гигантским ограничением технологии докеров... - person G Warner; 02.08.2017
comment
@GWarner: это не ограничение технологии докеров, это просто то, как работают компьютеры. Не существует универсального протокола отображения, по которому сервер может отправлять информацию на любой дисплей в любой ОС. X11 отлично справляется с решением этой проблемы в слове *nix — любой док-контейнер может открывать окна в любой другой системе *nix (которая использует X11), но и Windows, и Mac используют разные технологии отображения. Как я уже сказал в своем ответе, вы можете отображать окна в Windows и OSX, если установите приложение X11. - person Bryan Oakley; 02.08.2017