Другой способ (описанный здесь Нильсом де Моором) - позволить контейнеру докера подключиться к X-серверу вашего локального компьютера.
Скажите, что ваш ip-адрес равен 192.168.0.2
.
Вы можете настроить туннель для вашего дисплея X, т.е. на порт 6010 (что соответствует отображению 192.168.0.2:10
) с помощью socat
.В целях безопасности аргумент range
просит socat
принимать соединения только с IP-адреса вашего компьютера.
socat TCP-LISTEN:6010,reuseaddr,fork,range=192.168.0.2/32 UNIX-CLIENT:\"$DISPLAY\" &
Теперь вы можете установить переменную DISPLAY
внутри контейнера докера с помощью -e
, когда вызапустите его.
docker run -e DISPLAY=192.168.0.2:10 gns3/xeyes
В случае chrome
есть некоторые дополнительные сложности, описанные в связанном посте, потому что chrome требует некоторых дополнительных привилегий (например, добавить --privileged
)