Wie wir gesehen haben, existieren Docker-Image und Docker-Container im engen Wechselspiel miteinander. In welchen Merkmalen unterscheiden sich die beiden Konzepte nun?
Zunächst stellen wir fest, dass ein Docker-Image inert ist. Es belegt lediglich etwas Speicherplatz, verbraucht jedoch ansonsten keinerlei Systemressourcen. Ferner ist ein Docker-Image nach der Erstellung unveränderlich. Es handelt sich also um ein „read-only“ bzw. schreibgeschütztes Medium. Dazu ein kleiner Hinweis: Ja, es ist möglich, einem existierenden Docker-Image eine Änderung hinzuzufügen. Dabei entsteht jedoch ein neues Image; das ursprüngliche Image liegt weiterhin in der unveränderten Version vor.
Wie erwähnt lassen sich aus einem Docker-Image beliebig viele, gleichartige Container erzeugen. Was genau macht nun einen Docker-Container im Vergleich zum -Image aus? Bei einem Docker-Container handelt es sich um eine laufende (soll heißen: in der Ausführung befindliche) Instanz eines Docker-Images. Wie jede auf einem Computer ausgeführte Software, verbraucht ein laufender Docker-Container die Systemressourcen Arbeitsspeicher und CPU-Zyklen. Ferner ändert sich der Zustand eines Containers über dessen Lebensdauer.
Falls diese Beschreibung Ihnen zu abstrakt erscheint, ziehen Sie ein einfaches Beispiel aus dem täglichen Leben zu Hilfe. Stellen Sie sich ein Docker-Image wie eine DVD vor. Die DVD an sich ist inert – sie liegt in ihrer Hülle und macht ansonsten nichts. Dabei belegt sie dauerhaft denselben, begrenzten Platz im Raum. Erst durch Abspielen in einer speziellen Umgebung (DVD-Player) wird der Inhalt „lebendig“.
Wie der beim Abspielen einer DVD erzeugte Film hat ein laufender Docker-Container einen Zustand. Beim Film sind dies der aktuelle Wiedergabe-Zeitpunkt, gewählte Sprache, Untertitel und dergleichen. Dieser Zustand ändert sich mit der Zeit, und ein spielender Film verbraucht dabei laufend Elektrizität. Wie aus einem Docker-Image beliebig oft gleichartige Container gestartet werden können, lässt sich der Film einer DVD immer wieder abspielen. Ferner kann der laufende Film gestoppt und wieder gestartet werden – auch dies ist mit einem Docker-Container möglich.