Запуск gui приложений в docker

Автор:human

Запуск gui приложений в docker

Запуск gui приложений в docker

Запускаем контейнер, используя созданный ранее образ baseimage-ssh:

Заходи в контейнер:

Пытаемся поставить x11-apps. В моем случае система внезапно сообщила, что слыхом не слыхивала о таких чудесах, поэтому пришлось скопировать файл /etc/apt/sources.list с хост-системы. После этого все получилось:

Перезаходим по SSH с флагом -X, пытаемся запустить xcalc. Лично я увидел ошибку:

Запуск SSH с флагом -v помог понять ее причину:

После установки xauth в гостевой системе все заработало. Пробуем кое-что посерьезнее:
a

Chromium у меня так просто тоже не стал запускаться, сказав:

Правильно запускать его так:

Ставим шрифты- иначе вырви глаз.

Теперь имеем Chromium, как Chromium. Так и не скажешь, что под Docker запущен.

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

Под рутом говорим:

Появится одна или несколько строчек вроде таких:

Переключаемся на юзера:

Для каждой ранее уведенной строчечки говорим:

В дальнейшем так далать не понадобится, все сохраняется в файлики.
Теперь говорим:

Для удобства можно прописать алиас в .bashrc. В целом все отлично работает, страницы грузятся быстро, даже видео на YouTube можно смотреть. Только звука пока что нет. Давайте же это исправим!
В гостевой системе:

В хост-системе:

Запускаем paprefs, во вкладке Network Server ставим галочку Enable network access to local sound devices, а также Don’t require authentication. Затем:

В netstat -tuwpan должны увидеть, что процесс pulseaudio слушает порт 4713. Вам может захотеться добавить парочку правил фаервола, если по умолчанию вы разрешаете кому угодно стучатся на любые ваши порты. Если после выполнения приведенной выше команды ничего не изменилось, попробуйте:

У меня как-то не с первого раза получилось, но в итоге все заработало без необходимости перезагружать Ubuntu.

Теперь пробрасываем порт на гостевую систему:

В гостевой системе говорим:

… и звук пошел! Самое главное теперь — не забудьте сделать commit!

Об авторе

human administrator

    Оставить ответ

    Войти с помощью: