12.09.2017, 00:25
(Dieser Beitrag wurde zuletzt bearbeitet: 12.09.2017, 00:47 von Mareta Dagostino.)
Bogus wird es wissen, aber für andere Mitleser...
Docker ist keine "richtige" Virtuelle Maschine, sondern zieht eine Schnittstelle zwischen den Anwendungen und dem Betriebssytem so, dass die Programme in den verschiedenen "Docker-Containern" gegeneinander isoliert sind. Das geschieht so tief auf Betriebssystemebene, dass die Prozesse im einen Kontainer (z.B. Linux-Kommando TOP) nicht die Prozesse im anderen Container sehen können. Trotzdem läuft in Wahrheit alles auf dem selben Betriebssystem.
Vorteil: Braucht erheblich weniger Ressourcen als eine klassische VM, weil das Betriebssystem nicht in die Gäste kopiert werden muss. (Moderne VMs wie z.B. libvirt merken allerdings auch, wenn das Betriebssystem immer gleich ist und optimieren einiges.)
Nachteil: Alle Kontainer enthalten das gleiche Betriebssystem wie der Wirt: Man kann also mit Docker keinen Debian Gast auf einem Ubuntu Wirt ausprobieren. Sicherheitsaspekte können auch eine Rolle spielen: Wenn der Betriebssystemkern in Docker abstürzt oder angegriffen wird, ist das Gesamtsystem betroffen. Bei einer VM kann man die VM einfach wegwerfen und innerhalb von Sekunden eine Sicherheitskopie starten.
Meine persönliche Meinung ist, dass Docker seine Vorteile ausspielt, wenn man verschiedene Programme installieren muss, die unterschiedliche Anforderungen z.B. bezüglich der benötigten Bibliotheken haben. Viele Programme sind ja nicht so brav, dass man sie einfach in irgendein Verzeichnis kopiert. Fiktives Beispiel: OpenSim Mariafork läuft nur mit Mono 2.10 und OpenSim Musterfork nur mit Mono 5.2. Mit Docker kein Problem, ohne Docker ein ziemlicher Krampf. Mit einer VM auch kein Problem, aber da schleift man halt zwei komplette Betriebssystemkopien (einschließlich ggf. etlicher GB Speicher) mit sich rum.
Docker ist keine "richtige" Virtuelle Maschine, sondern zieht eine Schnittstelle zwischen den Anwendungen und dem Betriebssytem so, dass die Programme in den verschiedenen "Docker-Containern" gegeneinander isoliert sind. Das geschieht so tief auf Betriebssystemebene, dass die Prozesse im einen Kontainer (z.B. Linux-Kommando TOP) nicht die Prozesse im anderen Container sehen können. Trotzdem läuft in Wahrheit alles auf dem selben Betriebssystem.
Vorteil: Braucht erheblich weniger Ressourcen als eine klassische VM, weil das Betriebssystem nicht in die Gäste kopiert werden muss. (Moderne VMs wie z.B. libvirt merken allerdings auch, wenn das Betriebssystem immer gleich ist und optimieren einiges.)
Nachteil: Alle Kontainer enthalten das gleiche Betriebssystem wie der Wirt: Man kann also mit Docker keinen Debian Gast auf einem Ubuntu Wirt ausprobieren. Sicherheitsaspekte können auch eine Rolle spielen: Wenn der Betriebssystemkern in Docker abstürzt oder angegriffen wird, ist das Gesamtsystem betroffen. Bei einer VM kann man die VM einfach wegwerfen und innerhalb von Sekunden eine Sicherheitskopie starten.
Meine persönliche Meinung ist, dass Docker seine Vorteile ausspielt, wenn man verschiedene Programme installieren muss, die unterschiedliche Anforderungen z.B. bezüglich der benötigten Bibliotheken haben. Viele Programme sind ja nicht so brav, dass man sie einfach in irgendein Verzeichnis kopiert. Fiktives Beispiel: OpenSim Mariafork läuft nur mit Mono 2.10 und OpenSim Musterfork nur mit Mono 5.2. Mit Docker kein Problem, ohne Docker ein ziemlicher Krampf. Mit einer VM auch kein Problem, aber da schleift man halt zwei komplette Betriebssystemkopien (einschließlich ggf. etlicher GB Speicher) mit sich rum.