Zum Inhalt springen

Docker – einfach erklärt!

  • Daten

Docker ist ein Software-Tool aus dem Jahr 2013, welches bei der Erstellung, dem Testen und der Bereitstellung von Anwendungen unterstützt. Die Neuerung an diesem Tool ist, dass die Applikation in kleinere sogenannte Container aufgesplittet werden, die unabhängig voneinander laufen. Dadurch wird das gesamte System schlanker, effizienter und vor allem ressourcensparender.

Wie funktionieren Docker Container?

Im Mittelpunkt des Open Source Projektes Docker stehen die sogenannten Container. Container sind alleinstehende Einheiten, die unabhängig voneinander ausgeführt werden und immer gleich ablaufen können. Docker-Container können wir uns tatsächlich relativ praktisch vorstellen, wie einen Frachtcontainer. Angenommen, in diesem Container arbeiten drei Menschen an einer bestimmten Aufgabe (Ich weiß, dass dies wahrscheinlich gegen jedes geltende Arbeitsschutzgesetz verstößt, aber es passt nun mal sehr gut in unser Beispiel).

In diesem Container finden sie alle Ressourcen und Maschinen, die sie für ihre Aufgabe benötigen. Über eine bestimmte Lucke im Container bekommen sie die Rohstoffe geliefert, die sie benötigen, und über eine andere Lucke geben sie das fertige Produkt raus. Unser Schiffscontainer kann dadurch ungestört und weitestgehend autark arbeiten. Den Menschen darin wird es nicht auffallen, ob sich das Schiff inklusive Container gerade im Hamburger Hafen, in Brasilien oder irgendwo bei ruhigem Seegang auf offenem Meer befindet. Solange sie kontinuierlich Rohstoffe geliefert bekommen, führen sie ihre Aufgabe aus, egal wo sie sind.

Das Bild zeigt einen Wal, der viele gestapelte Schiffscontainer trägt. Darunter steht der Name Docker.
Docker Logo mit Schiffscontainern

Genauso verhält es sich mit Docker Containern im Softwareumfeld. Es handelt sich dabei um genau definierte, abgeschlossene Applikationen, die auf verschiedenen Maschinen laufen können. Solange sie die festgelegten Inputs kontinuierlich erhalten, können sie auch kontinuierlich weiterarbeiten.

Wo ist der Unterschied zu Virtual Machines?

Die Idee eine Applikation in verschiedene Unteraufgaben aufzuteilen und womöglich auf verschiedenen Computern ausführen zu lassen, war auch 2013 nicht neu. Für solche Aufgaben nutzte man davor sogenannte Virtual Machines (VMs).

Virtuelle Maschinen kann man sich stark vereinfacht vorstellen, wie die Computerzugänge vor einigen Jahren, als Computer noch nicht so verbreitet waren wie heute. Einige kennen es vielleicht noch, dass es pro Familie nur einen Computer gab und man in Windows verschiedene Benutzer angelegt hatte. Jedes Familienmitglied hatte einen eigenen Benutzer und legte dort Dateien ab oder installierte Software, wie Spiele, die für die anderen nicht zugänglich waren.

Virtual Machines nutzen vereinfacht gesagt dasselbe Prinzip, indem sie auf einem einzigen physischen Gerät, verschiedene Benutzer, die (VMs), anlegen. Für die Benutzer scheint es, als nutzen sie ein Hardware technisch isoliertes Computersystem, obwohl alle Benutzer denselben physischen Computer nutzen mit denselben Ressourcen, wie CPUs, Speicherplatz, etc. Eine solche Architektur der Virtualisierung hat diverse Vorteile, da die Hardwarekomponenten gebündelt sind und dadurch effizienter nutzbar sind, beispielsweise was die Kühlung des Systems angeht. Die Nutzer hingegen benötigen lediglich ein relativ leistungsarmes Gerät, wie einen Laptop, um sich mit der Virtual Machine zu verbinden und können trotzdem rechenintensive Aufgaben durchführen, da sie die Hardware der VM nutzen.

Am praktischsten kann man sich Virtual Machines beispielsweise als einen einzigen Laptop vorstellen, auf dem die Betriebssysteme Windows, MacOS und Linux installiert sind.

Das Bild zeigt einen Laptop mit drei Fenstern, eines davon hat Windows geöffnet, ein anderes MacOS und das letzte Linux.
Virtual Machine Beispiel | Foto: UFS Explorer

Docker Container unterscheiden sich von den Virtual Machines, indem sie einzelne Funktionen innerhalb einer Anwendung trennbar machen. Dadurch können auf einer Virtual Machine mehrere dieser Container laufen. Des Weiteren sind die Container einfache, abgeschlossene Pakete, die entsprechend einfach umzuziehen sind.

Was sind die Vorteile von Docker Containern?

  • Container sind sehr effizient und ressourcensparend, weil sie beispielsweise deutlich einfacher zu handhaben und managen sind.
  • Bei der Entwicklung von Applikationen im Team helfen Container, da sie sehr einfach zwischen Systemen transportiert werden können und ausführbar sind. Dadurch lassen sich die Entwicklungsstände sehr einfach zwischen Kollegen transportieren und funktionieren bei allen Teammitgliedern gleich.
  • Container machen eine Anwendung skalierbar. Wenn eine Funktion gerade häufig aufgerufen werden, beispielsweise bei einer Website, lassen sich die entsprechenden Container in einer Vielzahl hochfahren und können wieder abgestellt werden, sobald der Ansturm vorbei ist.

Wann nutzen wir Container und wann Virtual Machines?

Docker ContainerVirtual Machine
– Erstellung von Anwendungen in der Cloud
– Nutzung von Microservice-Architekturen (viele kleine Applikationen)
– Einfacher Transport der Applikationen von Testumgebung in Produktivumgebung ist gefordert
– Ein Betriebssystem soll in einem anderen Betriebssystem nutzbar sein
– Eine „große“ Applikation soll ausgeführt werden, sogenannte Monolithen
– Hardware Ressourcen, wie Speicher, Netzwerke oder Server, sollen provisioniert werden
Anwendungsunterschiede Docker und Virtual Machine

Was machen die Docker Images?

Die Docker-Images sind die kleinen Dateien in denen die Konfiguration des Containers definiert und gespeichert wird. Darin sind alle Informationen enthalten, die benötigt werden, um einen Container zu starten. Sie lassen sich also zwischen den Systemen einfach hin und her verschieben und daraus kann dann der Container gestartet werden.

Basierend darauf können wir beispielsweise Kubernetes nutzen, um die Verwaltung der Container zu vereinfachen und zu automatisieren.

Das solltest Du mitnehmen

  • Docker Container ermöglichen es kleine, abgeschlossene Applikationen zu entwickeln, die zwischen verschiedenen Systemen transportiert werden können und zuverlässig laufen.
  • Sie werden vor allem dann genutzt, wenn Applikationen in der Cloud laufen sollen oder zwischen verschiedenen Umgebungen schnell und einfach verschoben werden soll.
  • Docker Container sind deutlich ressourcensparender und effizienter als Virtual Machines.
  • In den Docker-Images werden die Konfiguration der Container abgespeichert und definiert.

Andere Beiträge zum Thema Docker

  • Hier findest Du die Dokumentation von Docker.
  • Dieser Beitrag von UFS Explorer steigt nochmal tiefer in das Thema Virtual Machines ein.
close
Das Logo zeigt einen weißen Hintergrund den Namen "Data Basecamp" mit blauer Schrift. Im rechten unteren Eck wird eine Bergsilhouette in Blau gezeigt.

Verpass keine neuen Beiträge!

Wir versenden keinen Spam! Lies die Details gerne in unserer Datenschutzrichtlinie nach.

Schlagwörter:
Cookie Consent mit Real Cookie Banner