у чому головна відмінність Докера від Snap?


85

У недавньому c't (на жаль, paywalled ) є стаття про Snap і Flatpak.

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

Це звучить дуже схоже на Докера, багато понять однакові. Тепер моє запитання, в чому різниця між Snap та Docker? Це різні випадки використання?

Відповіді:


109

Ви можете знайти розмову Марка Шуттлворта "Чому нам потрібен інший контейнер виключно для додатків" у Container Camp, що стосується вашого питання. Він загалом розповідає про машини, контейнери та Docker на початку, продовжуючи робити знімки та те, як вони поміщаються протягом дев'яти хвилин. Ось мій підсумок:

  • Різні типи контейнерів виглядають однаково, але використовуються для різних цілей.
  • Контейнери насправді не існують на рівні ядра. Можливі різні види ілюзій. Незалежно ми можемо створювати ілюзії щодо того, що бачать користувачі, мережа, диск та процеси.
  • Різні типи контейнерів дійсно стосуються різних класів ілюзій, які створюються.
  • Знімки:
    • Незмінна, але все ж частина базової системи.
    • Інтегрована з точки зору мережі, тому поділіться системною IP-адресою, на відміну від Docker, де кожен контейнер отримує власну IP-адресу.
    • Іншими словами, Докер дає нам щось там . Знімки дає нам щось тут . Наприклад, на робочому столі Snap надає програму прямо на ньому.
    • Оснащення не може забруднити решту системи. Це у власній коробці. Але він все ще може бачити (лише для читання) решту системи, що дозволяє їй говорити та інтегруватися з системою.

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

Ви можете запитати, як це краще, ніж використання PPA. Але порівняно з Docker, це як запитати, наскільки Docker кращий, ніж встановити залежності в системі вручну. Краще, але як саме було б, мабуть, найкраще відповісти в окремому не-докерському питанні.


3
Це не правда. Docker може взаємодіяти з настільними програмами (одного разу отримавши дозвіл). github.com/jamrizzi/docker-gtk
Jam Risser

2
Це звучить як Sandboxie для windows. Програми з пісочним вікном можуть відкривати діалогові вікна, отримувати доступ до всіх локальних файлів, але коли вони пишуть, вони просто записують у свою пісочницю.
feedc0de

1
Що робить цей інструмент, з яким ви посилаєтесь, робити інакше, ніж звичайний докер? Ви можете встановити гніздо x11 в докер без будь-якої спеціальної версії докера.
feedc0de

1
Це не інструмент, це демонстрація
Джем Ріссер

1
@jamrizzi Схоже, те, що ви робите, це просто надання докеру доступу до сокета X11 у сценарії. Це далеко не те, що користувач все-таки брав участь у цьому процесі (де діалог "Докер хоче отримати доступ до Медіа. Скасувати чи дозволити?")
Thorbjørn Ravn Andersen
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.