Docker und Portainer sind schnell eingerichtet. Doch irgendwann erscheint im Backend die Meldung, dass Portainer aktualisiert werden will. Und hier wird es in der Tat etwas knifflig. Über die GUI kommt man hier nämlich nicht weiter. Wir müssen also einmal via SSH auf die Konsole drauf und ein paar Befehle eintippen.
Welche das genau sind, welche Fehler man dabei vermeiden sollte und noch einiges mehr, erfährst du im folgenden Beitrag. Und für die Ungeduldigen unter euch hab ich gleich zu Beginn alle Befehle zusammengefasst. Denk bei der Eingabe bitte daran, dass die Groß- und Kleinschreibung eine Rolle beim Containernamen spielt.
Portainer quick & dirty updaten:
docker stop Portainer
docker rm Portainer
docker pull portainer/portainer-ce
docker run -d -p 9000:9000 -p 8000:8000 -p 9443:9443 --name Portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
docker start Portainer
Was die Kommandos machen:
Werden die obigen Befehle der Reihe nach ausgeführt, kann man sich direkt im Anschluss wie gewohnt einloggen. Weder das Passwort noch sonst irgendeine Einstellung hat sich verändert. Warum dem so ist? Weil man mit dem Befehl „docker rm Portainer“ nur den Container selbst löscht.
Die Einstellungen & Co. hingegen liegen in einem Volume. Frei gesprochen heißt das, dass der vorhandene Container gestoppt und gelöscht wird. Direkt im Anschluss wird er mit dem neuesten Image wieder ausgerollt und es wird in meiner obigen Konfiguration das Volume portainer_data gemountet.
Was man noch wissen sollte:
Und eine Sache sei zum Schluss noch gesagt. Während des Portainer-Updates bleibt alles up & running. Eine Beeinträchtigung der Services ist daher auszuschließen und eine Downtime ist ebenso nicht einzuplanen. Genial, oder? Und wenn nach dem Update der Login nicht mehr klappt, gibt es noch einen Trick.
In 99 % der Fälle wird die Portainer-Installation auf ein Volume namens portainer_data zur dauerhaften Datenspeicherung zurückgreifen. Manchmal ist dem aber auch nicht so. Wie du den Namen des verwendeten Volumes herausfindest, ist ganz einfach. Gib die unten stehenden Befehle ein und du weißt Bescheid:
docker volume ls
docker inspect Portainer
Nun musst du nur noch den Container mit dem Verweis auf das richtige Volume erneut ausrollen. Ändere dabei einfach den Namen von portainer_data ab. Danach sollte alles wie gewohnt funktionieren und du kannst wieder mit Portainer deine ganzen Container managen.