docker-logo

Docker Container erklärt

Von am 18.06.2022

Docker ist ein Softwareframework, um Container auf Servern und der Cloud zu bauen, laufen zu lassen und zu managen. Docker unterstützt damit die Entwicklung von Applikationen von verschiedenen Programmiersprachen, Frameworks oder Architekturen. Die Docker-Software verbindet dabei die Container mit dem Betriebssystem. Die Container selbst enthalten kein Betriebssystem, nicht so wie bei virtuellen Maschinen.

Vergleich der Architektur von Containern und Virtual Machines

Was sind Container?

Mit Container können Packages von Applikationen erstellt werden, die dabei alle notwendigen Abhängigkeiten und Konfigurationen beinhalten. Bei der Verwendung von Containern entsteht ein Artefakt, dass einfach geteilt und verschoben werden kann. Dadurch wird sowohl die Entwicklung als auch das Deployment verbessert und effizienter gestaltet.

Container existieren als öffentliches oder privates Repository. Auf öffentliche Repositories kann z.B. über Docker und Docker Hub zugegriffen und diese verwendet werden. Auf dem Docker Hub sind unzählige offizielle und inoffizielle Images für verschiedene Applikationen zu finden. Zu den beliebtesten Images gehören z.B. Redis, node, postgres, mysql oder mongo.

Wie bereits erwähnt kann mit Container der Entwicklungsprozess verbessert werden.

Ohne Container muss jeder Entwickler die meisten Services auf seinem Betriebssystem installieren, konfigurieren und in der lokalen Umgebung laufen lassen. Dieser Prozess ist dabei auf jedem Betriebssystem etwas anders. Zusätzlich können bei den viele Schritten viele Fehler passieren.

Mit Container müssen die Services nicht mehr auf dem eigenen Betriebssystem installiert werden. Der Container hat seine eigene Schicht mit einem Betriebssystem. Dabei wird eine isolierte Umgebung mit der Konfiguration, dem Image und dem Start Script in dem Container erstellt. Wenn das package dann verwendet wird, muss nur mehr die Docker Konfiguration durchgeführt werden. Diese ist für jedes Betriebssystem gleich. Damit wird der Prozess für ein Entwicklungsteam vereinfacht, da jeder die gleichen Schritte durchführt.

Mit Containern wird nicht nur die Entwicklung, sondern auch das Deployment verbessert. Ohne Container produziert das Entwicklerteam ein Artefakt mit den dazugehörigen Vorgaben, wie die Applikation auf dem Server zu installieren ist. Das Operation Team übernimmt dann die Aufgabe, die Umgebung aufzusetzen und zu deployen. Somit muss alles auf dem Server installiert und konfiguriert werden.

Bei der Verwendung von Containern arbeiten das Entwickler- und das Operation Team zusammen. Sie erstellen dabei ein Package. Dieses beinhaltet sowohl die Applikation als auch die Abhängigkeiten, das in einer Umgebung abgekapselt ist. Auf dem Server wird somit nur mehr Docker konfiguriert und der command für das Package ausgeführt.

weitere Vorteile von Docker

Automatisiertes Deployment: Mit Docker kann konfiguriert werden, dass bei einer neuen Version der Container neu startet. Dabei spricht man von sogenannten automatisierten Builds. Somit muss nicht per Hand ein neuer Build erstellt werden.

Sicherheit: Dank der Isolierung der Systeme, ist die Applikation auch sicherer. Das kommt vor allem daher, dass die Images nicht miteinander sprechen.

Third-Party Software: Third-Party Software (wie z.B. ein E-Mail-Server) können sehr einfach installiert und konfiguriert werden.

Performance: Container selbst laufen alle über denselben Kernel. Dadurch kann die Performance im Vergleich zu virtuellen Maschinen gesteigert werden.

Skalierung: Mit Docker kann man bei jeder Applikation einstellen, wie viele Server verwendet werden sollen.

Open Source: Docker selbst enthält auch open source Kompenenten, die in der Docker Community Edition zu finden sind.


erste Schritte mit Docker

In diesem Abschnitt wird kurz eine Möglichkeit erklärt, wie man mit Docker anfangen kann:

  1. Docker Desktop für das eigene Betriebssystem herunterladen und installieren.
  2. Mit dem Tutorial von Docker Desktop anfangen. Dieses kann über den Menüpunkt Containers gefunden werden. Mit dem folgenden Command kann es gestartet werden:
docker run -d -p 80:80 docker/getting-started

-d  // legt fest, dass der Container im Hintergrund läuft

-p 80:80  // bindet den Hostport 80 auf den Containerport 80

docker/getting-started  // definiert das zu verwendende Image

Wenn dieser Command ausgeführt wird, wird ein Container erstellt. Über Docker Desktop, in der Container Section, kann so das Tutorial über einen Browser geöffnet werden. In dem Tutorial wird unter anderem erklärt, wie man Docker konfiguriert, eine App updaten und teilen kann.


Docker ist eine von verschiedensten Container Plattform und davon die am meist verbreitete. Das kommt vor allem daher, dass sie stabil läuft, sicher und kostengünstig ist. Zusätzlich überzeugt sie mit open source Lösungen, gutem Support und einem großen Ökosystem von passenden Produkten als auch eine große Masse an Images.


Quellen

Docker Tutorial #1—Warum ihr Docker braucht! – YouTube. (2022, März 23). Abgerufen 18. Juni 2022, von https://www.youtube.com/watch?v=avdVAfL8GPI&list=PLNmsVeXQZj7oea6IDCLzpKe5XfLmWCwgr&index=2

What is a Container? – Docker. (2021, November 11). Abgerufen 18. Juni 2022, von https://www.docker.com/resources/what-container/

What is Docker? | Opensource.com. (o. J.). Abgerufen 18. Juni 2022, von https://opensource.com/resources/what-docker

Why Docker—Docker. (2021, November 11).Abgerufen 18. Juni 2022, von https://www.docker.com/why-docker/

Beitrag kommentieren

(*) Pflichtfeld