В чем главное отличие Docker от Snap?
В последнее время нет (к сожалению, paywalled) есть статья о Snap и Flatpak.
Это звучит очень похоже на Docker, многие концепции одинаковы. Теперь мой вопрос, в чем разница между Snap и Docker? Это разные варианты использования?
1 ответ
Вы можете найти выступление Марка Шаттлворта "Почему нам нужен другой контейнер исключительно для приложений" в Контейнерном лагере, относящийся к вашему вопросу. Вначале он говорит о виртуальных машинах, контейнерах и Docker, продолжая рассказывать об их особенностях и о том, как они вписываются примерно через девять минут. Вот мое резюме:
- Различные типы контейнеров выглядят одинаково, но используются для разных целей.
- Контейнеры на самом деле не существуют на уровне ядра. Возможны разные виды иллюзий. Самостоятельно мы можем создавать иллюзии относительно того, что видит пользователь, сеть, диск и процессы, которые видит контейнер.
- Различные типы контейнеров на самом деле о разных классах создаваемых иллюзий.
- Snaps являются:
- Неизменный, но все еще часть базовой системы.
- Интегрирован с точки зрения сети, поэтому используйте общий IP-адрес системы, в отличие от Docker, где каждый контейнер получает свой собственный IP-адрес.
- Другими словами, Докер дает нам кое-что там. Snaps дает нам кое-что здесь. Например, на рабочем столе оснастка предоставляет приложение прямо на нем.
- Щелчок не может загрязнить остальную часть системы. Это в своей коробке. Но он все еще может видеть (только для чтения) остальную часть системы, что позволяет ему общаться и интегрироваться с системой.
Вы спрашивали о разных вариантах использования по сравнению с Docker. Вот что может делать привязка, но Docker не может: настольные приложения. Third parties can ship desktop apps using snaps, and users can easily install and update them. A Docker container can't (easily) interact with the user graphically on the screen, load documents from the user's home directory, or provide video conferencing via the user's webcam. Snaps can (once given permission).
You might ask how this is better than using PPAs. But in comparison to Docker, that's like asking how Docker is better than installing dependencies on a system by hand. It's better, but exactly how would probably be best answered in a separate, non-Docker-specific question.