Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Excerpt

Docker

Docker ist ein Open-Source Projekt, das dazu dient Software in einer isolierten Umgebung - einem sogenannten Container - auszuführen. Das heißt, Software die innerhalb von einem Container ausgeführt wird teilt sich die Basisfunktionalität des eigentlichen Betriebssystemes, ist aber ansonsten was das Dateisystem und den Arbeitsspeicher angeht von dem restlichen Betriebssystem und anderen Containern isoliert. Das bietet den Vorteil, dass Software die innerhalb eines Docker-Containers ausgeführt wird, immer in einer fest definierten Umgebung mit fest definierten und installierten Abhängigkeiten ausgeführt wird.

Der Docker-Host, der notwendig ist um Docker-Container auszuführen, kann auf jedem beliebigen Linux, Windows oder Mac OSX Server installiert werden. Da jedoch immer eine Linux “Zwischenschicht” notwendig ist, ist ein Linux Server zu empfehlen. Weitere Informationen zur Installation von Docker find Sie hier: https://docs.docker.com/engine/install/

Docker Container

Docker bietet eine Vielzahl von vordefinierten Containern für bestimmte Anwendungszwecke. Diese Container werden oft von den Entwicklern einer Software selbst gepflegt. Beispielsweise gibt es einen offizielles Container-Abbild von Postgres, in dem die gleichnamige Datenbank ausgeführt wird. Um einen Docker Container zu konfigurieren exponiert dieser ein vordefiniertes Set von Einstellungen, die von außen an den Container weitergegeben werden können.

Docker Compose

Mit der Beschreibungssprache “Docker Compose” kann konfiguriert werden, wie eine Anwendung, die aus mehreren Docker Containern besteht, aufgebaut ist. Hier ist beispielsweise definiert, welche Container inkl. ihrer Konfiguration für die gesamte Anwendung ausgeführt werden müssen, wie die Container miteinander in einem virtuellen Netzwerk kommunizieren, welche Dateien vom Host-System im Container zur Verfügung stehen sollen und welche Passwörter verwendet werden sollen.