Как запускать приложения с графическим интерфейсом, такие как gvim, из контейнера Docker - PullRequest
0 голосов
/ 01 декабря 2018

Чтобы поэкспериментировать с образом Docker, я установил Docker и запустил пример образа Ubuntu Docker следующим образом.(Надеюсь, я правильно использую терминологию, но все равно нукер Docker)

docker run -it ubuntu

Поскольку gvim или любая другая программа на основе графического интерфейса не была установлена, по умолчанию я установил ее внутри докера ubuntuКонтейнер

apt-get update 
apt-get install x11-apps vim-gtk

Однако при запуске xclock я получаю

root@59be2b1afca0:/# xclock
Error: Can't open display: :0
root@59be2b1afca0:/# 

При запуске gvim я получаю

root@59be2b1afca0:/# gvim
E233: cannot open display
Press ENTER or type command to continue

Так почему не работают приложения с графическим интерфейсом?

1 Ответ

0 голосов
/ 01 декабря 2018

Контейнеры изначально не были предназначены для приложений графического интерфейса, а скорее для сервисов, рабочих, процессов и т. Д. С другой стороны, поскольку контейнеризация - это конструкция ядра, предназначенная для выделения и выделения ресурсов более управляемым способом, который может предоставлять порты.или обмениваться томами, устройствами и т. д.

Это означает, что вы можете технически сопоставить экран, аудио, устройства веб-камеры с контейнером, используя --device /dev/xyz при запуске команды docker run:

docker run [--rm [-it]|-d] \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e DISPLAY \
--device /dev/dri \
myimage [cmd]

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

Надеюсь, это немного поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...