Images und Container¶
An dieser Stelle will ich weiteres Grundverständnis über die fraglichen Techniken und Begriffe bereitstellen. Für meine Trainees halte ich diverse digitale Unterlagen bereit. Hier für die Darstellung ein Cheat Sheet.
Docker Cheat Sheet Trainer Joe Brandes¶
Der (1-2-3) Lebenszyklus eines Containers lässt sich gut erkennen.
Hinweis
Ich erinnere an die klassische Grundidee für Container:
1 Prozess (bzw.Service) = 1 Container.
Daher kommt ja auch die klassische docker ps Syntax!
Im Grunde fängt Alles mit der Schablone für einen Container an dem Image. Und die Frage stellt sich, wo liegen diese Images. Die Images liegen in einer Registry.
Registry - Online- oder Offline-Fundus für Images
Der digitale Fundus für gewünschte Images. Man sollte hier (noch) den Begriff Repository vermeiden. Es gibt diverse Registries online von verschiedenen Anbietern. Und was ist eigentlich mit den Themen Vertrauen, Privacy oder Schutz meiner digitalen Güter - hierzu in einem späteren Abschnitt mehr.
Wir beziehen uns an dieser Stelle der Einfachheit halber auf den sogenannten Docker Hub - eben eine solche Anlaufstelle für Images.
Image Pull oder Build - Image bereitstellen
Über einen Image Pull laden wir das gewünscht Image auf unseren Docker-Host, falls es noch nicht aktuell vorliegt. Oder wir bauen uns das gewünschte Image.
Images stehen also in unterschiedlichen Entstehungen zur Verfügung:
Image from Scratch
Basis Images (mit Status Official)
Image Builds: Benutzerdefinierte Images basierend auf Images (s.oberhalb) und definiert über ein Dockerfile
Zusammengefasst: ein Image stellt eine genau fixierte Ausgangssituation für eine technische Umgebung basierend auf Textdirektiven (Dockerfile) dar.
Container Create oder Compose - Container für die Nutzung erstellen
Jetzt wird per create aus einem Image ein Container. Das Image ist der Read-Only Teil für den schreibbaren Container-Teil.
Image: Read Only / Vorlage für Container
Container: Read and Write / Umgebung für SW / ABER: Wegwerfware!
Wenn wir später mehrere Container basierend auf unterschiedlichen Images erzeugen wollen, dann können wir (z.B.) zu Docker Compose Technik greifen.
Alle Schritte könn(t)en per (container) run zusammengefasst werden.
Zusammenfassung
Der Container kapselt somit unsere gewünschte Software/Dienstleistung. Diese Umgebung lässt sich jederzeit nachvollziehbar bereitstellen. Und das auf völlig verschiedenen Maschinen oder sogar Betriebssystemen. Wir benötigen nur unser Container Management!