LOGENTIS Deep Dive

Docker

symbolgrafik docker web

Docker – Was macht es so besonders?

Docker ist eine Open-Source-Technologie, die für die Entwicklung, den Vertrieb und die Ausführung von Anwendungen verwendet wird. Im Kern ermöglicht Docker, Anwendungen in sogenannten Containern zu kapseln. Diese Container sind portable und laufen in einer isolierten Umgebung. Docker ist eine Containerisierungstechnologie, mit der sich Windows-Container und Linux-Container erstellen und verwenden lassen. Docker ist nicht dasselbe wie ein traditioneller Container. Die Docker-Technologie bietet mehr als die Fähigkeit, Container auszuführen – sie vereinfacht auch den Prozess der Erstellung und des Aufbaus von Containern sowie den Versand von Images und unter anderem auch der Versionierung von Images.

Exkurs: Was ist ein Docker-Image?

Ein Docker-Image ist eine unveränderliche Datei, die im Wesentlichen einen Schnappschuss eines Containers darstellt. Es kann als eine Art Vorlage für einen Container betrachtet werden.

Hier sind einige wichtige Punkte zu Docker-Images:

  • Inhalt: Ein Docker-Image enthält alles, was zum Ausführen einer Anwendung benötigt wird, einschließlich des Programmcodes, der Laufzeitumgebung, der Systemtools, der Systembibliotheken und der Einstellungen.
  • Erstellung: Über eine Konfigurationsdatei, den Dockerfile, beschreibt man ein Image und baut dieses. 
  • Speicherung: Images werden in einer Docker-Registry gespeichert. Ein weit verbreitetes öffentliches Registry ist der Docker Hub.
  • Schichten: Docker-Images sind so konzipiert, dass sie aus mehreren Schichten anderer Images bestehen können. Jede Schicht repräsentiert eine Änderung im Dateisystem des Images. Dies ermöglicht es, nur die geänderten Teile eines Images zu übertragen, was die Übermittlung von Images über das Netzwerk effizienter macht.
  • Verwendung: Wenn ein Image mit dem Befehl "run" gestartet wird, erzeugt es einen Container. Ein Image kann mehrere Container erstellen.
  • Unveränderlichkeit: Ein Image ist unveränderlich, was bedeutet, dass es nach der Erstellung nicht mehr geändert werden kann. Wenn Änderungen an einem Image erforderlich sind, wird ein neues Image erstellt.
  • Versionierung: Jedes Mal, wenn eine Änderung an einem Image vorgenommen wird, entsteht eine neue Schicht, was eine Art Versionskontrolle darstellt. Diese Schichten können für Rollbacks auf vorherige Versionen verwendet werden.

In der Programmiersprache ausgedrückt, könnte man sagen, dass ein Image eine Klasse ist, während ein Container eine Instanz dieser Klasse ist. Das Image ist also die Vorlage, und der Container ist die laufende Anwendung, die auf dieser Vorlage basiert.

Vorteile von Docker

  • Portabilität und Konsistenz: Docker bietet eine portable und konsistente Laufzeitumgebung für Softwareanwendungen. Anwendungen können in jeder Umgebung ausgeführt werden, da alle Abhängigkeiten in einem Docker-Ausführungscontainer zusammengeführt werden.
  • Ressourcen-Effizienz: Docker-Container benötigen weniger Ressourcen als herkömmliche Server oder virtuelle Maschinen (VMs). Container-Images sind in der Regel viel kleiner als VM-Images, was den Speicherplatzbedarf reduziert und die Anzahl der Anwendungen erhöht, die auf einem System ausgeführt werden können. Da die Container das Dateisystem und die Systemressourcen gemeinsam nutzen, wird weniger Speicherplatz benötigt.
  • Schnelle Bereitstellung: Die Bereitstellung von Anwendungen mit Docker-Containern kann in Sekunden erfolgen, da das Betriebssystem nicht neu gestartet werden muss. Dies ermöglicht eine schnelle und effiziente Verteilung von Anwendungen.
  • Isolation: Docker-Container isolieren Anwendungen voneinander und von ihrem zugrunde liegenden System. Dies verhindert, dass sich Anwendungen gegenseitig stören und sorgt für eine einheitliche Funktionalität in verschiedenen Umgebungen. Es kann auch bestimmt werden, wie eine containerisierte Einheit das jeweilige System und die vorhandenen Ressourcen nutzt.
  • Modularität: Docker ermöglicht es, einzelne Komponenten einer Anwendung zu aktualisieren oder zu reparieren, ohne die gesamte Anwendung deaktivieren zu müssen. Dieser Microservices-Ansatz fördert die Flexibilität.
  • Flexibilität: Durch die Containerisierung von Anwendungen können diese auf verschiedenen Betriebssystemen wie Linux, MacOS oder Windows ausgeführt werden.

Docker-Komponenten

  • Docker Engine: Die Docker Engine ist die zugrundeliegende Technologie zum Erstellen und Ausführen von Containern. Sie besteht aus dem Docker Daemon, der Docker Engine REST API und dem Docker Client.
  • Docker Daemon: Ein Hintergrundprozess, der Docker-Images und -Container verwaltet. Er "schaut" ständig auf Docker-API-Anforderungen und verarbeitet sie.
  • Docker Engine REST API: Eine Schnittstelle, die von Anwendungen verwendet wird, um mit dem Docker-Daemon zu interagieren.
  • Docker Client: Ein Befehlszeilenprogramm (CLI) zur Interaktion mit Docker.
  • Docker Images: Unveränderliche Dateien, die einen Schnappschuss eines Containers darstellen.
  • Docker Registry: Ein Speicherort für Docker-Images, wie z.B. Docker Hub.
  • Docker-Container: Laufende Instanzen von Docker-Images, die eine Anwendung und ihre Abhängigkeiten enthalten.
  • Docker Desktop: Ein GUI-Tool (Grafische Benutzeroberfläche) zum Management von Docker-Komponenten, welches insbesondere auf Windows und Mac verwendet wird.
  • Docker Compose: Ein Tool zur Definition und Verwaltung von Anwendungen, die aus mehreren Containern bestehen.
  • Docker Swarm: Eine Technologie zur Verwaltung und Orchestrierung von Containern.
  • Kubernetes: Ein Open-Source-System zur Automatisierung der Verwaltung von Containern.

Docker ist ein wichtiges Werkzeug für moderne DevOps-Teams. Es ermöglicht eine einfachere Verwaltung von Infrastruktur, schnellere Bereitstellung und eine verbesserte Kontrolle über die Softwarebereitstellungskette. Docker trennt die Anwendungsschicht von der Infrastrukturebene und sorgt so für die dringend benötigte Portabilität.

Cloudnativ und serverless

Docker-Container können auf verschiedenen Systemen, einschließlich Linux, Mac und Windows, ausgeführt werden, ohne dass Anwendungen an das jeweilige Betriebssystem angepasst werden müssen. Docker ist besonders beliebt in Cloud-Umgebungen und unterstützt serverless (“serverlos”): Anwendungen werden cloudnativ entwickelt, ohne dafür Server verwalten zu müssen. Mit einem fertigen Docker-Image können Entwickler in die Cloud gehen, ohne darauf achten zu müssen, wo genau der Container läuft. Durch die Möglichkeit des Einsatzes auf Edge-Devices, wie zum Beispiel kompakten Einplatinencomputern, eröffnen sich zusätzliche Anwendungsmöglichkeiten.

Docker unterstützt das Microservices-Modell, bei dem Anwendungen in separate, unabhängige Dienste unterteilt werden. Dieses Modell ermöglicht eine schnellere Entwicklung und flexible Anwendungen.

Netversys auf verschiedenen Geräten
NETVERSYS - Die Software für Versandlogistik

Optimieren Sie Ihren Versand

Mit unserer Software für eine optimierte Versandlogistik bringen Sie Ihre Waren schneller an den Kunden und behalten dabei die Kosten für Versanddienstleister immer im Blick. Profitieren Sie von kundenorientierten Vorteilen wie:

  • Carrier Entgeltmanagement
  • perfekte Versandemails
  • Non-EU Zollmanagement
  • Gefahrguthandling
  • modernes Pluginsystem
  • weltklasse Support
Aktuelles

LOGENTIS Journal

Schauen Sie doch auch in unserem Lexikon vorbei

Feature-März bei NETVERSYS
NETVERSYSLogentis

27.03.2025

Feature-März bei NETVERSYS

Das NETVERSYS-Release 2025.03 ist da: Neben Fixes stehen in Kürze eine neue GUI für manuellen Datenimport, eine Europakarte im Dashboard für den Versandüberblick sowie ein Logging für Barcode-Eingaben in der Versandmaske zur Verfügung. Die monatliche Kunden-E-Mail listet alle Verbesserungen auf.

NETSTORSYS: Februar-Release und aktualisierte Website
NETSTORSYSLogentis

19.03.2025

NETSTORSYS: Februar-Release und aktualisierte Website

NETSTORSYS bleibt dynamisch: Mit dem Februar-Release 2025.02 setzen wir mehrere Fixes für den automatischen Domänentransfer, die Barcode-Suche und den Versand gepickter Seriennummer-Artikel um. Außerdem legen wir mit einem umfassenden Update auf unseren NETSTORSYS-Produktseiten nach. Reinklicken!

Doppelte Informatik-Power
Logentis

03.03.2025

Doppelte Informatik-Power

Herzlich willkommen, Rieke und Yasemin von der Hochschule Osnabrück! Ab jetzt arbeiten die Bachelorantinnen bei uns an ihren Bachelor-Arbeiten zu moderner Logistiksoftware. Wir freuen uns immer über neue Talente und den guten Draht zur Hochschule.

Alle Artikel