Контейнер Docker как приложение по умолчанию

#docker #ubuntu

#docker #ubuntu

Вопрос:

У меня Firefox каждую ночь запускается в контейнере. Я ищу решение для настройки его в качестве моего приложения для браузера по умолчанию (ubuntu 18.04). Итак, мой вопрос в том, как настроить контейнер Docker в качестве системного приложения по умолчанию в Ubuntu.

Моя команда docker:

 docker run -d --net=host -v ~/:/home/firefox  -v /tmp/.X11-unix:/tmp/.X11-unix  
  -e DISPLAY=unix:0 -v /dev/shm:/dev/shm --device /dev/snd  
  --group-add 29 -e PULSE_SERVER=unix:/run/user/1000/pulse/native  
  -v /run/user/1000/pulse/native:/run/user/1000/pulse/native 
  firefox-nightly
  

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

Спасибо

Ответ №1:

Одной из альтернатив является создание нового файла .desktop (например: /usr/share/applications/firefox-docker.рабочий стол). Я просто скопировал существующий firefox.desktop и изменил Exec разделы командой, использующей docker (*)

Затем с помощью xdg-utils (**) настройте его как приложение браузера по умолчанию: xdg-settings set default-web-browser firefox-docker.desktop .


*: Чтобы сохранить файл .desktop чистым, вы могли бы создать исполняемый файл в системном пути (например, / usr /bin): docker-firefox:

 xhost  
docker run --net=host -v ~/:/home/firefox  -v /tmp/.X11-unix:/tmp/.X11-unix  
  -e DISPLAY=unix:0 -v /dev/shm:/dev/shm --device /dev/snd  
  --group-add 29 -e PULSE_SERVER=unix:/run/user/1000/pulse/native  
  -v /run/user/1000/pulse/native:/run/user/1000/pulse/native 
  firefox-nightly $@
  

Обратите внимание на $@ в конце. И сделайте его исполняемым, чтобы его можно было запускать как обычное приложение.

**: Ссылка взята из документации Arch, но она работает и в Ubuntu.

Комментарии:

1. Вау! Ваше решение работает как шарм. Большое спасибо. У меня всего два вопроса. Какова цель «xhost «? Потому что я удалил его, и он все еще работает. И мой другой вопрос заключается в том, как это возможно, что когда у меня запущен firefox (docker), в моем терминале я выбираю и нажимаю на URL-адрес, и этот URL открывается в моем запущенном Firefox!??? Это просто идеально, лучше, чем ожидалось, но для меня это своего рода волшебство, поскольку я не понимаю, как это возможно. Для меня это должно открыть новый firefox, поскольку это должно создать новый контейнер. Но нет, это повторное использование моего запущенного контейнера Firefox.

2. ‘xhost ‘ отключает управление доступом к X server, которое требуется при выполнении из командной строки. -> linux.die.net/man/1/xhost