Zur einfachen Verwaltung von Docker Containern verwende ich portainer. Als ich die mehrschrittige Aktualisierung irgendwann so leid war, habe ich eine Docker Compose Konfiguration gebaut. Diese teile ich mit euch in diesem Beitrag.
Wer portainer noch nicht kennt, der kann sich hier darüber informieren.
Orientiert habe ich mich dabei an den offiziellen Installations-Schritten für einen einzelen (standalone) Docker Host unter Linux. Und so sieht meine Docker Compose Konfiguration „docker-compose.yml“ für portainer aus.
version: '3'
services:
portainer:
image: portainer/portainer:latest
container_name: portainer
restart: always
ports:
- 9000:9000
- 8000:8000
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
volumes:
portainer_data:
Zum Start des Containers über Docker Compose müsst ihr im gleichen Verzeichnis sein, wie die Datei „docker-compose.yml“.
docker-compose up -d
Die Aktualisierung erfolgt dann in drei Schritten
- Aktuelle Version des Container Images herunterladen
docker-compose pull
2. portainer Container mit den neuen Image starten
docker-compose up --no-deps --force-recreate --build --remove-orphans -d
3. Nicht mehr benötigte, veraltete Images löschen
docker image prune
Das war’s schon. Wenn ihr Fragen oder Anregungen habt, gerne in die Kommentare.
Hallo!
Nachdem ich Ihrem Tutorial hier gefolgt bin, konnte ich Portainer nicht mehr auf Port 9000 erreichen.
Ich habe es nunmehr auf herkömmlichem Weg neu installiert.
Moin Stefan,
hast du die Konfiguration 1:1 so übernommen oder noch etwas geändert? Und, hast du portainer zuvor nach der offiziellen Anleitung gestartet?
Gruß
Thomas
In Deiner docker-compose.yaml wird der Portainer Port 9000 auf den lokalen Port 8999 gemapped (8999:9000). Daher hat das bei Stefan nicht mehr funktioniert.
Moin!
Stefan hat das problem weil im artikel port 9000 von portainer auf port 8999 beim host gelegt wird.
Standard bei portainer ist 9000:9000 und nicht 8999:9000
Ja, weils mit der Konfig gegen aussen 8999 ist…
Natürlich nicht. In dem Docker-Compose File wird ja der Port 9000 auf den Port 8999 umgeleitet.
Ohne gemein klingen zu wollen, aber hier sieht man warum Copy-Paste ohne Prüfung nach hinten los gehen kann. Der Autor ist eine Zeile verrutscht und hat port 8999 statt 9000 am Host freigegeben.
Das ist etwas was sofort auffällt wenn man sich das compose file anschaut. Aber wenn man blindes Copy-Pasting betreibt geht es natürlich nach hinten los.
ja klar, schau mal unter welchem Port jetzt Portainer erreichbar ist ; Sektion ports…8999 auf 9000 also ist Portainer extern jetzt über Port 8999 erreichbar…
Falls du die Konfiguration 1:1 übernommen hast, wird Portainer auf Port 8999 auf dem lokalen System zur Verfügung gestellt, warum der Autor diese Anpassung vorgenommen hat, kann ich leider nicht sagen (vermutlich hatte er den Port 9000 schon anderweitig belegt).
Danke an alle die mit Ihren Kommentaren unterstütz haben. Ich habe meine Konfig oben aktualisiert. Der Fehler mit dem Port Mapping ist mir nicht aufgefallen weil ich einen älteren Stand hier dokumentiert hatte als ich tatsächlich am Laufen hatte!
Es müsste
portainer/portainer-ce:latest
statt
portainer/portainer:latest
eingetragen werden. portainer-ce ist die aktuell gepflegte Version. DIe andere bekommt keine Updates mehr.