Vous pouvez trouver la conférence de Mark Shuttleworth sur "Pourquoi avons-nous besoin d'un conteneur différent uniquement pour les applications" à Container Camp pertinente pour votre question. Il parle en général des VM, des conteneurs et de Docker au début, en passant ensuite aux snaps et comment ils s'intègrent vers neuf minutes. Voici mon résumé :
- Les différents types de conteneurs se ressemblent mais sont utilisés à différentes fins.
- Les conteneurs n'existent pas vraiment au niveau du noyau. Différents types d'illusions sont possibles. Indépendamment, nous pouvons créer des illusions sur ce que voient un conteneur au niveau des utilisateurs, du réseau, du disque et des processus.
- Les différents types de conteneurs concernent vraiment différentes classes des illusions qui sont créées.
- Les snaps sont :
- Immutable, mais font toujours partie du système de base.
- Intégrés en termes de réseau, ils partagent donc l'adresse IP du système, contrairement à Docker, où chaque conteneur a sa propre adresse IP.
- En d'autres termes, Docker nous donne une chose là-bas. Les snaps nous donnent une chose ici. Par exemple, sur un ordinateur de bureau, un snap fournit une application directement dessus.
- Un snap ne peut pas polluer le reste du système. Il est dans sa propre boîte. Mais il peut toujours voir (en lecture seule) le reste du système, ce qui lui permet de communiquer et de s'intégrer avec le système.
Vous avez demandé des cas d'utilisation différents par rapport à Docker. En voici un que les snaps peuvent faire, mais pas Docker : des applications de bureau. Les tiers peuvent expédier des applications de bureau en utilisant des snaps, 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 depuis le répertoire personnel de l'utilisateur, ou fournir des visioconférences via la webcam de l'utilisateur. Les snaps peuvent le faire (une fois la permission accordée).
Vous pourriez demander comment c'est mieux que d'utiliser des PPAs. Mais en comparaison avec Docker, c'est comme demander comment Docker est mieux que d'installer des dépendances sur un système manuellement. C'est mieux, mais la manière exacte serait probablement mieux expliquée dans une question séparée, non spécifique à Docker.