Definition

Container-Image

Ein Container-Image ist eine unveränderliche, statische Datei, die ausführbaren Code enthält, auf dessen Basis ein isolierter Prozess in der IT-Infrastruktur ausgeführt werden kann. Das Image besteht aus Systembibliotheken, Systemwerkzeugen und anderen Plattformeinstellungen, die ein Softwareprogramm zur Ausführung auf einer Containerisierungsplattform wie Docker oder CoreOS Rkt benötigt.  Das Image teilt sich den Betriebssystemkern seines Host-Rechners.

Ein Container-Image wird aus Dateisystemebenen kompiliert, die auf einem übergeordneten oder Basis-Image aufgebaut sind. Diese Schichten fördern die Wiederverwendung verschiedener Komponenten, so dass der Benutzer nicht für jedes Projekt alles von Grund auf neu einrichten muss. Technisch gesehen wird ein Basis-Image für ein völlig neues Image verwendet, während ein übergeordnetes Image die Modifikation eines bestehenden Images anzeigt. In der Praxis werden die Begriffe jedoch austauschbar verwendet.

Arten von Container-Images

Ein Benutzer erstellt ein Container-Image von Grund auf mit dem Build-Befehl einer Container-Plattform, wie z.B. Docker. Der Hersteller des Container-Images kann es im Laufe der Zeit aktualisieren, um mehr Funktionalität einzuführen, Fehler zu beheben oder das Produkt anderweitig zu ändern, und er kann das Image modifizieren, um es als Grundlage für einen neuen Container zu verwenden.

Für eine verstärkte Automatisierung werden die Ebenen vom Benutzer in einem Dockerfile beschrieben und in das Image eingefügt. Jeder Befehl in der Dockerdatei erzeugt eine neue Ebene im Image. Werkzeuge zur kontinuierlichen Integration wie Jenkins können ebenfalls den Aufbau eines Container-Images automatisieren.

Viele Softwareanbieter erstellen öffentlich zugängliche Images ihrer Produkte. So bietet Microsoft beispielsweise ein SQL Server 2017-Container-Image an, das auf Docker läuft. Containeranwender sollten sich jedoch der Existenz korrupter, gefälschter und bösartiger öffentlich zugänglicher Container-Images bewusst sein, die manchmal so getarnt sind, dass sie den Images offizieller Anbieter ähneln.

Container-Images werden in einer Registry gespeichert, die entweder privat oder öffentlich in einem Repository wie dem Docker-Hub ist. Der Ersteller des Images schiebt es in die Registry, und ein Benutzer zieht das Image, wenn er es als Container ausführen möchte in sein System. Funktionen wie Docker Content Trust basieren auf digitalen Signaturen, um zu verifizieren, dass die von öffentlichen Repositories heruntergeladenen Image-Dateien original und unverändert sind. Diese zusätzliche Überprüfung der Authentizität verhindert jedoch nicht die Erstellung oder Verbreitung von Malware.

Einige Images sind absichtlich minimal, während andere große Dateigrößen haben. Im Allgemeinen liegen sie im Bereich von einigen zehn Megabyte.

Container-Images werden von Entwickerln in ein Repository geschoben und von Nutzern gezogen
Von einem einzelnen Container-Image kann eine Vielzahl identischer Container in der produktiven Umgebung ausgeführt werden.

Vorteile und Eigenschaften von Container-Images

Das Container-Image-Format ist so konzipiert, dass es schnell heruntergeladen und sofort gestartet werden kann. Ein laufender Container verbraucht im Allgemeinen weniger Rechenleistung und Speicherplatz als eine vergleichbare virtuelle Maschine.

Images werden durch die ersten zwölf Zeichen eines echten Identifikators gekennzeichnet und haben eine virtuelle Größe, gemessen an den verschiedenen darunter liegenden Schichten. Images können mit Tags versehen oder unmarkiert bleiben und nur über einen echten Identifikator auffindbar sein.

Um weitgehend interoperabel zu sein, basieren Container-Images auf offenen Standards und funktionieren über verschiedene Infrastrukturen, einschließlich virtueller und physischer Maschinen und Cloud-gehosteter Instanzen hinweg. Bei Container-Implementierungen werden die Anwendungen voneinander isoliert und von der zugrunde liegenden Infrastruktur abstrahiert.

Nachteile von Container-Images

IT-Abteilungen in Unternehmen müssen sich der Gefahr betrügerischer Images bewusst sein und die Benutzer über geeignete Sicherheitsvorkehrungen schulen, wenn sie aus öffentlichen Repositories ziehen. Um dieses Problem zu vermeiden, kann eine Organisation eine interne Liste mit geprüften verfügbaren Images erstellen.

Neben der Authentizität stellt auch die Ausbreitung von Container-Images ein Risiko dar. Organisationen können am Ende eine Vielzahl von Container-Images haben, die dasselbe Ergebnis erzielen oder unbenutzte Images, die aber nie gelöscht wurden. Darüber hinaus werden gestoppte Container nicht automatisch entfernt und verbrauchen weiterhin Speicherressourcen.

Diese Definition wurde zuletzt im April 2020 aktualisiert

Erfahren Sie mehr über Server- und Desktop-Virtualisierung