15.12.21

Docker-Container sind in aller Munde – warum eigentlich?

Hier folgt eine kurze Einordnung, was Docker ist:

Seit 2016 kommt als neue Entwicklung für Docker-Container neben dem Linux-Kernel auch Windows als native Umgebung zum Einsatz und Docker-Container sind in aller Munde. Weiter sind Container bei fast allen Digitalisierungsstrategien mit einem Fokus auf IT-Architekturen mittlerweile von Bedeutung. Man kann sogar so weit gehen und sagen, dass Containerisation als einer der bedeutenden Umbrüche in der IT-Welt seit Einführung der Hardware-Virtualisierung mit virtuellen Maschinen (VMs) anzusehen ist.

Ähnlich wie VMs sind Container eine Art Behälter für Anwendungen, in denen diese laufen können. Während virtuelle Maschinen jedoch die Computer-Umgebung abbilden, enthalten Container lediglich die wichtigen Daten, die für die Ausführung der Applikation benötigt werden. Dadurch werden Ressourcen geschont und ein einzelner Host kann viel mehr Container tragen als VMs. Darüber hinaus können Container unabhängig von den enthaltenen Daten ausgetauscht und z.B. auf neue Versionen aktualisiert werden. Bei vollwertigen VMs ist der Aufwand dafür deutlich größer.

Die derzeit bekannteste Container-Technologie ist Docker, wobei wir u.a. Podman, OpenVZ oder Kubernetes hier auch als Alternativen kurz aufzählen möchten. Wenn wir in diesem Artikel von dem Begriff „Docker“ sprechen, dann beziehen wir uns auf die Software Docker, die eine Containerisierungstechnologie darstellt und die Erstellung und den Betrieb von Linux®-Containern ermöglicht. Diese Differenzierung ist wichtig, weil es ja noch die Open Source Docker-Community und das Unternehmen Docker Inc. gibt.

Welche Vorteile bieten gerade Docker-Container?

  • Geringer Ressourcenverbrauch und minimaler Overhead (CPU, IO, Netzwerk)
  • Sehr skalierbar
  • Flexibel einsetzbar für Microservices, speziell zum Entwickeln, Testen und zur Bereitstellung von Anwendungen
  • In hybriden Netzwerken einsetzbar
  • Schnelle Bereitstellung
  • Portabel, d.h. man kann es überall laufen lassen
  • Minimales Basisbetriebssystem
  • Anwendungsisolation

Was sind Einsatzmöglichkeiten von Docker?

Docker ermöglicht ein schnelles Bereitstellen reproduzierbarer (Laufzeit-)Umgebungen für die Entwicklung und Systemadministration, wie z.B. für Evaluations-, POC-, Test- oder QA-Systeme, für Live-Umgebungen und Konfigurationstests. Docker vereinfacht den Entwicklungszyklus, indem Entwickler:innen in standardisierten Umgebungen mit lokalen Containern arbeiten können, die ihre Anwendungen und Services bereitstellen.

Container eignen sich hervorragend z.B. für Workflows zur kontinuierlichen Integration und Bereitstellung. So kann Code „einfach“ geschrieben und mit Kollegen:innen über Docker-Container geteilt werden. Wenn Entwickler:innen Fehler finden, können sie diese in der Entwicklungsumgebung direkt beheben und diese dann zum Testen und zur Validierung erneut in der Testumgebung bereitstellen. Wenn der Softwaretest abgeschlossen ist, kann es z.B. genügen, das Update an den Kunden zu senden, indem das aktualisierte Image in die Produktionsumgebung übertragen wird.

Unser Workshop rund um Docker-Container:

Wir haben Ende November einen Workshop zum Thema „Virtualisierung mit Docker“ durchgeführt und ein paar Erkenntnisse als kurzer Überblick über Docker-Container hier einmal zusammengefasst. Unsere fünf Coaches Christian Aue, Christian Behrendt, Wolfgang Kropp, Michael Brandau und Michael Adler haben ihre Teilnehmer:innen jeweils im virtuellen Gruppenraum begrüßt und ein eigenes Thema rund um Docker vorbereitet. Alle Workshop-Teilnehmer:innen konnten frei zusammenstellen, ob sie morgens etwas zur funktionalen Verwendbarkeit von Docker in Projekten hören wollen, mittags dann Docker installieren und die Toollandschaft begutachten und sich nachmittags selbst an der Erstellung eines Images versuchen wollen oder anders herum. Der Kurs Image und Imagination arbeitete dabei als moderierte Diskussion die Möglichkeiten von Docker und den Nutzen im Projektalltag heraus. Unser Kursangebot umfasste aber noch viel mehr:

  • Image und Imagination: Was ist Docker und wie nützt es mir?
  • Landschaftsinstallationen mit Containern: Wie installiere ich Docker und was gibt es für Tools und Hilfsmittel?
  • Mein erstes Containerdorf: Grundbefehle in Docker
  • Alles muss man selbst machen: Wie erstelle ich eigene Images?
  • Alles kann man machen lassen: Imageerstellung im Entwicklungs- und Buildprozess

Haben Sie Fragen oder Interesse an einem Docker-Workshop, dann sprechen Sie uns einfach an: per Mail contact@spirit-testing.com oder direkt Kontakt zu SPIRIT-TESTING SPIRIT-ONSIDE