Skip to content

Updaten einzelner Docker Images

Schilling, Sebastian edited this page Jun 18, 2021 · 7 revisions

Mit dieser Anleitung können einzelne Images und Container in der Microservice Architecture geupdated werden, ohne den kompletten Stack herunterfahren zu müssen.

  1. Auflisten aller laufenden Container:
$ docker ps 
  1. Aus der ausgebenen Liste wird die Container-ID des betreffenden Containers genommen und dieser mit dem folgenden Kommando gestoppt:
$ docker stop <container_id> 

Der Container sollte nun beim erneuten auflisten der Container nicht mehr zu sehen sein.
Um auch alle gestoppten Container angezeigt zu bekommen, wird dem Kommando zum Auflisten der Container ein -a hinzugefügt. Der Container wird wieder mit aufgelistet:

$ docker ps -a 
  1. Mit dem nächsten Kommando wird der Container entgültig entfernt:
$ docker rm <container_id> 
  1. Nun werden zunächst alle Images aufgelistet, aus denen Container erstellt werden können:
$ docker images

oder

$ docker image ls

Hier wird die Image-ID des veralteten Images gefunden.
Für eine detaillierte Betrachtung des Images kann dieses Kommando verwendet werden:

$ docker inspect <image_id> 
  1. Mit der Image-ID wird das alte Image gelöscht:
$ docker rmi <image_id> 
  1. Nun kann dans neue Image von Docker Hub herunter geladen werden. Die Versionierung des Images ist an dessen Tag zu erkennen:

Ist das Image Teil eines Stacks, sollte dessen docker-compose.yml-Datei editiert werden, indem dort der Image-Name und dessen Tag aktuallisiert werden.
Das Image wird im Anschluss vor dem starten des Containers automatisch heruntergeladen.

Wenn das Image nicht Teil eines Stacks ist, wird es mit folgendem Kommando heruntergeladen:

$ docker pull <image_name:image_tag> 
  1. Als letztes wird der Container des neuen Images gestartet:

Ist der Container Teil eines Stacks, wird er über den Service-Namen seiner docker-compose.yml-Datei gestartet und zuvor das Image heruntergeladen:

$ docker-compose up -d <service-name> 

Wenn der Container in keinem Stack läuft und keine zusätzlichen Informationen benötigt, kann auch folgendes Kommando verwendet werden:

$ docker run <image_name:image_tag>