10. Oktober 2024
i-doit 33: Neues Add-on & Subscription Center und i-doit Add-on Flows
Wir freuen uns, i-doit Version 33 vorzustellen, ein Release, das leistungsstarke neue Funktionen bietet, um Ihre IT-Dokumentations- und...
Read More
Pattrick Bluhm
02. August 2019
| Lesedauer: 3 Min.
Docker-Container sind verhältnismäßig klein, vielseitig einsetzbar und für viele Applikationen maßgeschneidert. Sie schonen vorhandene Ressourcen und skalieren in rasantem Tempo die IT-Infrastruktur. Die Container, wie sie von Docker verwendet werden, sind eine besondere Form der Virtualisierung. i-doit beherrscht “out of the box” viele Arten von Virtualisierungen. Darum ist die Dokumentation von Docker-Images und -Containern mit i-doit kein Problem.
Docker ermöglicht es, Anwendungen ohne Virtualisierungssoftware zu virtualisieren. Was zunächst konfus klingt, ist im Prinzip ganz einfach. Nahezu jede Anwendung ist von bestimmten Paketen abhängig, um lauffähig zu sein. Ob es PHP in einer bestimmten Version, eine Datenbank oder ein Webserver ist, hängt von der Anwendung ab. Mit Docker werden zusammen mit der Anwendung alle Grundvoraussetzungen (Abhängigkeiten) in einem sogenannten Container gepackt. Wenn dieser Container auf einen anderen Host übertragen und ausgeführt wird, ist eine Anpassung der vorhandenen Pakete nicht mehr nötig. Alles, was für die Ausführung der Anwendung notwendig ist, befindet sich im Container.
Einsparung von Ressourcen
Da Docker-Container nicht im klassischen Sinn virtualisiert werden, kann auf die Nutzung eines zusätzlichen Betriebssystems verzichtet werden. Da das auf dem Host vorhandene Betriebssystem genutzt wird, werden beim Betrieb deutlich Ressourcen gespart. Trotz dieser gemeinsamen Nutzung sind die betriebenen Container untereinander und gegenüber dem Host abgeschottet. Durch die Zusammenfassung in Container-Images lassen sich diese zwischen verschiedenen Systemen austauschen und starten werden.
Schnelle und einfache Skalierung
Docker-Container sind zusätzlich gut skalierbar. Benötigen Sie eine zusätzliche Instanz einer Anwendung, starten Sie einen neuen Container. Wenn viele Container zu verwalten und zu organisieren sind, kommen Tools wie z. B. Kubernetes ins Spiel.
Modularisierung
Microservices sind eine Architektur in der IT, bei der komplexere Anwendungen aus kleinen, unabhängigen Bausteinen komponiert werden. Für diesen Einsatz eignen sich Docker-Container hervorragend. Eine Anwendung kann auf mehrere Container verteilt werden, anstatt auf einem einzigen virtuellen Server zu laufen.
Rollback und Versionierung
Ein weiterer Vorteil ist die Versionskontrolle. Durch den Aufbau der Docker-Container mit verschiedenen Layern werden Änderungen automatisch erfasst. Bei Bedarf kehren Sie einfach zu einer vorherigen Version (Rollback) zurück. Vor allem bei der agilen Entwicklung von Applikationen oder beim Implementieren neuer Funktionen sind Docker-Container somit effizient einsetzbar.
Durch den Verzicht auf ein eigenes Betriebssystem sind die Container enger mit dem Host verknüpft, als dies bei „echten“ virtuellen Maschinen der Fall ist. In der Regel teilen sich viele Container auf einem Server einen Betriebssystemkern: den des Host-Systems. Wird das Betriebssystem kompromittiert, trifft es auch viele Container gleichzeitig.
Ein weiterer Nachteil ist die hohe Komplexität der Containertechnologie. Während sich VMs leicht einrichten und überwachen lassen, ist dies bei Containern deutlich anspruchsvoller. Hinzu kommt, dass Tools wie Kubernetes ebenfalls recht komplex in der Einrichtung und Verwaltung sind.
Nein. Docker wurde zwar auf und für Linux entwickelt. Mittlerweile ist es aber auch unter Windows Server / Windows 10 und Mac OS verfügbar. Auch Cloud-Dienste wie Microsoft Azure, Amazon Web Services und Google Cloud bieten entsprechende Container-Technologien an. Somit können Cloud-Anwendungen sicher bereitgestellt und bei Bedarf problemlos skaliert werden.
Um die Docker-Infrastruktur in i-doit zu dokumentieren, müssen wir ein paar Vorbereitungen treffen. Zuerst legen wir in der Objekttyp-Kategorie „Software“ den neuen Objekttyp „Docker-Image“ an.
Für diesen erstellen wir über den Administrationsbereich zwei benutzerdefinierte Kategorien. Diese dienen dazu, die Funktion bzw. den Inhalt des Images zu beschreiben und den Link zu Registry aufzunehmen. Die erste Kategorie erhält ebenfalls die Bezeichnung “Docker-Image”. Diese wenden wir auf den Objekttyp “Docker-Image” an. Im Anschluss fügen wir ein Link-Feld mit der Feldbezeichnung “Registry” hinzu. Danach speichern wir unsere neue Kategorie.
Ein Docker-Image Objekt besitzt nun in der gleichnamigen Kategorie zwei Felder: Einen Link zur Registry und die obligatorische Beschreibung, die i-doit automatisch hinzufügt. Im Beschreibungsfeld tragen wir nun das Pull-Kommando ein, über welches das Image hinzugefügt wird. Durch das Hinzufügen dieser beiden Felder haben wir dokumentiert, in welcher Registry sich das Image befindet. Ferner haben wir erfasst, was auf Kommandozeilenebene eingegeben werden muss, um dieses zu laden.
Als zweite benutzerdefinierte Kategorie erstellen wir „Container“. Diese Dokumentationskategorie gibt uns einen Überblick, welche Instanzen des Images existieren. Wir verwenden dazu die Funktion des variablen Report, der alle dokumentieren Instanzen des Images zeigt. Auch diese Kategorie fügen wir wieder dem Objekttyp „Docker-Image“ hinzu.
Da wir alle aktiven Docker-Images angezeigt bekommen möchten, ist es sinnvoll einen eigenen Bericht dafür zu erstellen und direkt im Objekt anzuzeigen. Daher erstellen wir einen neuen Report über Report Manager und legen als Bedingung “Objekttyp = Docker-Image” fest.
Um nun auch die Container zu dokumentieren, erstellen wir einen neuen Objekttyp „Container“ in der Objekttyp-Gruppe „Infrastruktur“. Wir wählen hier alle Eigenschaften aus, die zu dokumentieren sind. Üblicherweise soll die gleiche Dokumentationsqualität wie bei „Virtuelle Server“ erreicht werden. Daher übernehmen wir die Eigenschaften aus dieser Kategorie.
Um einen Bezug zwischen Image und Container herzustellen, erstellen wir eine benutzerdefinierte Kategorie mit dem Namen „Docker“. Zur eindeutigen Identifizierung bietet sich ein Textfeld mit „Name (Hash)“ an, ein Objekt-Beziehungsfeld, mit dem wir später unser „verwendetes Image“ auswählen. Wichtig bei dieser Konfiguration ist es, dass wir als Objekttyp „Container“ festlegen.
Die erstellte Kategorie ist nun in Objekten vom Typ „Container“ erstellt. Hier wird der Name des Containers und sein Hash, sowie das Run Kommando und eine Referenz auf das zugrundeliegende Image hinterlegt.
Zur Vervollständigung der Virtualisierungstechniken erweitern wir noch die Eigenschaften der „Virtuellen Maschinen“ um das Virtualisierungssystem „Docker“.
Erweitern sie später Ihre Dokumentation, in dem Sie das Dockerfile unter Dateien ablegen. So haben Sie alle Informationen über Ihre Docker-Virtualisierung an einem Ort.
Docker Images und Container lassen sich schnell und vollständig mit i-doit dokumentieren. Unser besonderer Dank geht an Christian Wally von unserem i-doit Partner don’t panic für diesen Artikel. Besuchen Sie dont-panic.at für weitere innovative Lösungen und smarte ITSM-Erweiterungen.
10. Oktober 2024
Wir freuen uns, i-doit Version 33 vorzustellen, ein Release, das leistungsstarke neue Funktionen bietet, um Ihre IT-Dokumentations- und...
Read More06. Oktober 2024
Das Redesign dieser neuen Seite markiert...
Read More03. September 2024
Die Server-Dokumentation umfasst die Erfassung und Speicherung wichtiger Informationen über die Server-Infrastruktur eines Unternehmens. Dazu gehören...
Read More