Dockers, a new container has arrived!Hafenarbeiter, ein neuer Container ist eingetroffen!

Willkommen zur Reihe über Docker. In dieser Reihe werden wir uns mit Docker und seinen Containern auseinandersetzen. Wir werden sehen,

  • was Docker ist,
  • wie man es installiert,
  • wie man es benutzt und
  • welche Vorteile es bringt.

Dann werden wir einige Produktivitätstools mit Docker installieren, sie testen und am Ende miteinander vergleichen. Also dann, seid gerne dabei! Auf zu ersten Schritt!

Was ist Docker?

Um zu klären, was Docker und Container nun wirklich sind, ist es hilfreich bei ihrem üblichen Einsatzzweck anzufangen: der Zurverfügungstellung von Diensten.

Die Cloud

Im Cloud Computing wird einem Benutzer Hardware und somit auch Funktionalitäten zur Verfügung gestellt. Diese Funktionalitäten können Virtuelle Maschinen, Datenspeicher, Networking und andere Dienste sein. Die Cloud ist dabei ein virtuelles Netzwerk und ein virtuelles Datencenter. Ein Server bedient dabei mehrere Benutzer. Dazu müssen die Serverkapazitäten und seine Rechenleistung auf die Benutzer aufgeteilt werden.

Typ 1 Virtualisierung

Um die Hardwarekapazitäten aufzuteilen, können virtuelle Maschinen aufgesetzt werden. Also, auf der Hardware muss eine Software, der sogenannte Hypervisor, laufen, mit dem diese virtuellen Maschinen aufgesetzt, d.h. erzeugt und wieder abgeschaltet werden können. Jede virtuelle Maschine ahmt dabei einen Computer samt Betriebssystem und auf ihm installierte Programme und Services nach.

Wenn der Hypervisor direkt auf dem Server installiert ist, spricht man von einer „bare-metal“ Architektur. Ein Beispiel für einen solchen Hypervisor wäre Proxmox.

Typ 2 Virtualisierung

Will man als Privatperson auf seinem eigenen Rechner „bare-metal“-Dienste aufsetzen, müsste man das aktuelle Betriebssystem löschen. Das dürfte nur für wenige eine praktikable Lösung sein. Dem steht die „hosted“ Architektur gegenüber, bei der auf dem Server ein Host-Betriebssystem installiert ist, auf dem dann ein Hypervisor, wie z.B. VirtualBox, VMWare oder RedHat, die virtuellen Maschinen aufsetzt.

Nichtsdestotrotz müssen die virtuellen Maschinen auch hier komplett mit der zugewiesenen Hardware simuliert werden. Das beinhaltet das gesamte Betriebssystem der virtuellen Maschine. Das bedeutet, dass virtuelle Maschinen bereits im idle-Modus eine Rechenleistung benötigen und dass sie beim Starten Booten müssen, was ebenfalls Zeit benötigt.

Virtuelle Maschinen vs. Docker Container

Dem gegenüber stehen Container, die auf einer Container Engine (also hier Docker) laufen. Die Container Engine (hier Docker) wiederum ist auf einem Betriebssystem des Servers installiert. Die Container ahmen virtuelle Maschinen nach, und greifen dabei direkt auf den Kernel also die Hardwarekomponenten des Systems zu, sodass sie nicht das komplette Betriebssystem simulieren müssen. Das heißt, Container benötigen weniger Rechenleistung, sind also effizienter und wesentlich kleiner (üblicherweise im MB- bis GB-Bereich). Container müssen nicht booten, und sind somit schnell einsatzbereit. Außerdem brauchen sie nur geringe Zeiten (Sekunden), um aufgesetzt zu werden. Zusätzlich können Umgebungsvariablen festgesetzt werden, wie zum Beispiel das Betriebssystem und seine Version, welches sie ausführen sollen, sodass Container unabhängig von dem tatsächlich installierten Betriebssystemversion eines anderen Servers sind. Dadurch sind eine hohe Kompatibilität und auch eine hohe Portabilität sichergestellt. Aus diesem Grund eignen sie sich gut für Microservices, von denen wir auch einige im Folgenden installieren wollen.

Related Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert