web-dev-qa-db-fra.com

Quelle est la principale différence entre Docker et Snap?

Dans c't récent (malheureusement paywalled ), il y a un article sur Snap et Flatpak.

enter image description here

Cela ressemble beaucoup à Docker, beaucoup de concepts sont les mêmes. Maintenant, ma question, quelle est la différence entre Snap et Docker? S'agit-il de cas d'utilisation différents?

77
Ivanov

Vous pourriez peut-être trouver l'exposé de Mark Shuttleworth "Pourquoi nous avons besoin d'un conteneur différent uniquement pour les applications" à Container Camp pertinent pour votre question. Il parle généralement des ordinateurs virtuels, des conteneurs et de Docker au début, puis continue sur les clichés et explique leur place pendant environ neuf minutes. Voici mon résumé:

  • Différents types de conteneurs se ressemblent mais sont utilisés à des fins différentes.
  • Les conteneurs n'existent pas vraiment au niveau du noyau. Différentes sortes d'illusions sont possibles. Indépendamment, nous pouvons créer des illusions sur ce que les utilisateurs, le réseau, le disque et les processus voient dans un conteneur.
  • Différents types de conteneurs correspondent à différentes classes d’illusions créées.
  • Snaps sont:
    • Immuable, mais fait toujours partie du système de base.
    • Intégré en termes de réseau, partagez donc l'adresse IP du système, contrairement à Docker, où chaque conteneur obtient sa propre adresse IP.
    • En d'autres termes, Docker nous donne une chose à cet endroit . Snaps nous donne une chose ici . Par exemple, sur un bureau, une capture instantanée fournit une application directement sur celle-ci.
    • Un cliché ne peut pas polluer le reste du système. C'est dans sa propre boîte. Mais il peut toujours voir (en lecture seule) le reste du système, ce qui lui permet de parler et de s'intégrer au système.

Vous avez posé des questions sur différents cas d'utilisation par rapport à Docker. En voici une que les instantanés peuvent faire, mais que Docker ne peut pas faire: les applications de bureau. Les tiers peuvent expédier des applications de bureau en utilisant des instantanés, et les utilisateurs peuvent facilement les installer et les mettre à jour. Un conteneur Docker ne peut pas (facilement) interagir graphiquement avec l'utilisateur à l'écran, charger des documents à partir du répertoire de base de l'utilisateur ou fournir une vidéoconférence via la webcam de l'utilisateur. Snaps peut (une fois l'autorisation donnée).

Vous pourriez vous demander en quoi cela est mieux que d’utiliser des AAE. Mais, comparé à Docker, cela revient à demander comment Docker est meilleur qu’à installer manuellement des dépendances sur un système. C'est mieux, mais exactement quelle serait probablement la meilleure réponse dans une question distincte, non spécifique à Docker.

100
Robie Basak