в чем главное отличие Docker от Snap?

85

В последнее время нет (к сожалению, paywalled ) есть статья о Snap и Flatpak.

введите описание изображения здесь

Это звучит очень похоже на Docker, многие концепции одинаковы. Теперь мой вопрос, в чем разница между Snap и Docker? Это разные варианты использования?

Иванов
источник

Ответы:

110

Вы можете найти выступление Марка Шаттлворта «Почему нам нужен другой контейнер исключительно для приложений» в Контейнерном лагере, относящийся к вашему вопросу. Вначале он говорит о виртуальных машинах, контейнерах и Docker, продолжая рассказывать об их особенностях и о том, как они вписываются примерно через девять минут. Вот мое резюме:

  • Различные типы контейнеров выглядят одинаково, но используются для разных целей.
  • Контейнеры на самом деле не существуют на уровне ядра. Возможны разные виды иллюзий. Самостоятельно мы можем создавать иллюзии относительно того, что видит пользователь, сеть, диск и процессы, которые видит контейнер.
  • Различные типы контейнеров на самом деле о разных классах создаваемых иллюзий.
  • Snaps являются:
    • Неизменный, но все еще часть базовой системы.
    • Интегрирован с точки зрения сети, поэтому используйте общий IP-адрес системы, в отличие от Docker, где каждый контейнер получает свой собственный IP-адрес.
    • Другими словами, Докер дает нам кое-что там . Snaps дает нам кое-что здесь . Например, на рабочем столе оснастка предоставляет приложение прямо на нем.
    • Щелчок не может загрязнить остальную часть системы. Это в своей коробке. Но он все еще может видеть (только для чтения) остальную часть системы, что позволяет ему общаться и интегрироваться с системой.

Вы спрашивали о разных вариантах использования по сравнению с Docker. Вот что может делать привязка, но Docker не может: настольные приложения. Третьи лица могут поставлять настольные приложения с помощью моментальных снимков, а пользователи могут легко устанавливать и обновлять их. Контейнер Docker не может (легко) графически взаимодействовать с пользователем на экране, загружать документы из домашнего каталога пользователя или предоставлять видеоконференции через веб-камеру пользователя. Можно щелкать (после получения разрешения).

Вы можете спросить, как это лучше, чем использовать PPA. Но по сравнению с Docker это все равно что спрашивать, чем Docker лучше, чем устанавливать зависимости в системе вручную. Это лучше, но как именно лучше всего ответить на отдельный вопрос, не относящийся к Docker.

Роби Басак
источник
3
Это неправда. Docker может взаимодействовать с настольными приложениями (после получения разрешения). github.com/jamrizzi/docker-gtk
Джем Риссер
2
Это звучит как песочница для окон. Программы-песочницы могут открывать диалоги, получать доступ ко всем локальным файлам, но когда они пишут, они просто пишут в свою песочницу.
feedc0de
1
Что этот инструмент, на который вы ссылаетесь, делает иначе, чем обычный докер? Вы можете смонтировать гнездо x11 в докер без какой-либо специальной версии докера.
feedc0de
1
Это не инструмент, это демонстрация
Jam Risser
1
@jamrizzi Похоже, вы просто предоставляете докеру доступ к сокету X11 в скрипте. Это довольно далеко от того, чтобы пользователь каким-либо образом участвовал в этом процессе (где диалог «Докер хочет получить доступ к дисплею. Отменить или разрешить?»?)
Thorbjørn Ravn Andersen