Vielleicht finden Sie Mark Shuttleworths Vortrag "Warum wir einen anderen Container nur für Apps benötigen" im Container Camp, der für Ihre Frage relevant ist. Er spricht zu Beginn allgemein über VMs, Container und Docker, fängt dann an und erklärt, wie sie in ungefähr neun Minuten passen. Hier ist meine Zusammenfassung:
- Verschiedene Arten von Behältern sehen gleich aus, werden jedoch für unterschiedliche Zwecke verwendet.
- Container existieren auf Kernel-Ebene nicht wirklich. Verschiedene Arten von Illusionen sind möglich. Unabhängig davon können wir uns Illusionen darüber machen, was Benutzer, Netzwerk, Datenträger und Prozesse in einem Container sehen.
- Verschiedene Arten von Behältern handeln wirklich von verschiedenen Klassen der Illusionen, die erzeugt werden.
- Schnappschüsse sind:
- Unveränderlich, aber immer noch Teil des Basissystems.
- Im Gegensatz zu Docker, bei dem jeder Container eine eigene IP-Adresse erhält, ist die System-IP-Adresse netzwerkintegriert.
- Mit anderen Worten, gibt Docker uns eine Sache gibt . Snaps gibt uns eine Sache hier . Auf einem Desktop bietet ein Snap beispielsweise eine App direkt darauf.
- Ein Schnappschuss kann den Rest des Systems nicht verschmutzen. Es ist in einer eigenen Box. Es kann jedoch den Rest des Systems weiterhin anzeigen (nur lesen), sodass es kommunizieren und sich in das System integrieren kann.
Sie haben nach anderen Anwendungsfällen als Docker gefragt. Hier ist eine, die Snaps ausführen können, Docker jedoch nicht: Desktop-Apps. Drittanbieter können Desktop-Apps mithilfe von Snaps ausliefern und Benutzer können sie problemlos installieren und aktualisieren. Ein Docker-Container kann nicht (einfach) grafisch auf dem Bildschirm mit dem Benutzer interagieren, Dokumente aus dem Benutzerverzeichnis laden oder Videokonferenzen über die Webcam des Benutzers durchführen. Schnappschüsse können (einmal erteilte Erlaubnis).
Sie könnten fragen, wie dies besser ist als die Verwendung von PPAs. Aber im Vergleich zu Docker ist das so, als würde man fragen, wie Docker besser ist, als Abhängigkeiten von Hand auf einem System zu installieren. Es ist besser, aber wie genau würde wahrscheinlich am besten in einer separaten, nicht Docker-spezifischen Frage beantwortet werden.