Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Virtualisierung mit Docker

Container und Images im Vergleich

Testen Sie unsere 2019 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Docker unterscheidet zwischen Containern und Images. Machen Sie sich in diesem Film mit den Unterschieden vertraut.

Transkript

Docker unterscheidet zwischen Containern und so genannten Images. Aus genau diesem Grund sollten auch Sie in der Lage sein zwischen Images und Containern unterscheiden zu können. Genau diese Unterscheidung soll Teil dieses Videos sein. Lassen Sie mich also zunächst mit dem Image beginnen. Beim Image handelt es sich um eine Art Archiv. Das heißt, es ist eine geschlossene Einheit, die Dateien beinhaltet. Das Image bei Docker ist natürlich hier noch etwas Besonderes, denn es beinhaltet neben Dateien auch zusätzliche Konfigurationsanweisungen, wie beispielsweise Netzwerkkonfiguration. Ein Beispiel für ein Image wäre das Basisimage für ein Betriebssystem, wie beispielsweise Ubuntu oder Zend OS. Als solches ist das Image portable, kann also zwischen diversen Systemen hin und her transportiert werden. Neben den Basisimages kann auch eine so genannte Momentaufnahme entstehen, die jeweils aus einem Container abgeleitet, den aktuellen Zustand darstellt. Da man diesen Zustand nun mehrfach speichern kann, also zu unterschiedlichen Zeitpunkten, unterliegt ein Image auch so genannter Versionierung. Das heißt, jedes Mal, wenn eine Momentaufnahme getätigt wird, wird eine neue Version des Images erstellt. Wenn ich also beispielsweise von einer Ubuntu-Basisinstallation beginne und dann Java installiere, ist die neue Version eine Ubuntu-Version mit Java. Der Container als solches ist es also nun die Laufzeitausprägung eines Images. Das heißt, zu einem Zeitpunkt X nutze ich ein Image als Basis für die Initialisierung eines Containers. Dieser Container läuft nun auf dem System, ich nehme weitere Änderungen vor, dadurch dass Anwendungen innerhalb des Containers laufen und kann dann zu jedem beliebigen Zeitpunkt aus diesem Container wieder ein Image generieren. Lassen Sie mich das Ganze noch einmal illustrativ darstellen. Es beginnt also alles im Regelfall mit einem Image. In diesem Fall handelt es sich um ein Image einer Datenbank. Diese Datenbank wurde auf einem ursprünglichen Image Ubuntu installiert und repräsentiert nun das so genannte Datenbankimage. Möchte ich nun also Container erzeugen, wie beispielsweise ein mySQL-Cluster mit mehreren Instanzen, nehme ich also dieses Image als Basis und erzeuge jeweils eine beliebige Anzahl Instanzen, die dann für sich geschlossen laufen können. Ähnliches kann ich auch beispielsweise mit einem Image machen, das einen Webserver repräsentiert. Ich erzeuge also einen Container und installiere beispielsweise eine neue Komponente, wie in diesem Fall PHP. Aus diesem Container erzeuge ich nun ein neues Image, Webserver mit PHP, das ich wiederum zu späteren Zeitpunkten zu neuen Containern initialisieren konnte. Um diesen Prozess so effizient wie möglich zu gestalten, nutzt Docker einige sehr interessante Prinzipien für die Image-Versionierung. Als solches erhält ein Image zunächst immer einen Tag, eine so genannte Bezeichnung. Zu diesem Tag kommt später noch die Version, das heißt beispielsweise Ubuntu: und dann die Version 14.04. Das repräsentiert also die tatsächliche Version des Images. Das interessante ist an der Stelle, das tatsächlich nur die Änderungen, die vorgenommen wurden zur jeweilige Version auch tatsächlich gespeichert werden müssen. Wenn ich also eine neue Version des Ubuntu-Containers erstelle, in dem ich Apache installiert habe, wird nur Apache zusätzlich gespeichert. Ganz entscheiden zu wissen ist auch, egal wie Docker arbeitet aus einem Image muss immer zunächst ein Container entstehen, der wiederum dann zu einem Image werden kann. Wenn man sich also nun das Webserver- Beispiel noch einmal vor Augen führt, sieht man, es gibt ein so genanntes Image-Betriebssystem Ubuntu, das hier als Basis in der Version 12.1 genutzt wurde. Von diesem Image aus wurde nun der Apache-Webserver installiert und das Ganze wurde als Image Apache gespeichert, konnte nun entsprechend auch in verschiedene Richtungen versioniert werden. Ausgehend von dem Apache- Image wird nun PHP installiert und am Ende des Tages sind aus 280 MB ursprünglich Ubuntu-Image nun 310 MB-Image inklusive PHP enstanden. Das interessante an der Stelle ist, das lediglich die Differenz von 30 MB auch den Unterschied zwischen den beiden Images darstellen. Wenn Docker nun also eine Instanz von PHP mit Ubuntu bzw. auch Apache initialisiert, nutzt das jeweilige anderen Images als Basis des Dateisystems und stellt immer auf einem so genannten Ebenenprinzip diese Dateien zur Verfügung. Da bereits erwähnt wurde dass aus jedem Image immer ein Container entstehen muss, kann es sein, dass beispielsweise in der Initialbereitstellung des Apache-Webservers, insofern sie automatisiert passiert, diverse Container für einzelne Schritte entstanden sind und diese auch kurzzeitige Images dargestellt haben. Beispielsweise für den Apache-Webserver gab es den ursprünglichen Beginn vom Apache-Webserver aus, der dann später durch die Editierung der httpd.conf-Datei, zu einem neuen Image gespeichert wurde. Insofern man selber keine Versionsnummer vergibt, generiert Docker diese Versionsnummer von selbst. Hier repräsentiert durch die hexadezimal Abfolge hinter dem Dopplepunkt. Die neuste Version eines Images bekommt immer den Tag lastest, sodass in den Moment, wo ich mir einen neuen Container erzeugen möchte, beispielsweise auf Basis von Apache, auch immer die lasest- Konfiguration benutzt wird. Container und Images sind also jeweils sehr eigene aber zusammenhängende Konzepte. Genau diese Konzepte habe ich Ihnen in den letzen Minuten demonstriert.

Virtualisierung mit Docker

Steigen Sie in die Container-Virtualisierung ein und entdecken Sie einfaches Prototyping neuer und unkomplizierte Skalierung bestehender Anwendungen.

3 Std. 36 min (36 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!