Mittels Docker könnt ihr sehr schnell Programme / Container updaten. Hier zeige ich euch wie.
1. Backup erstellen
Im Allgemeinen kann ein Backup nie Schaden. Hier gibt es je nach Container spezielle Backup Lösungen. Allgemein kann man jedoch einfach den gesamten Ordner backupen. Voraussetzung ist, dass die Daten / Einstellungen innerhalb des Ordners gespeichert werden und nicht in den Docker Containern selbst.
cd /opt/containers/Container-Name #Container herunterfahren docker-compose down #Backup erstellen cp -R /opt/containers/Container-Name /opt/containers/Container-Name-Backup
2. Update durchführen
Im Allgemeinen reichen hier 3 Befehle:
#Container herunterfahren docker-compose down #Update durchführen docker-compose pull #Container starten docker-compose up oder docker-compose up -d
Das sollte es schon gewesen sein.
10 Kommentare
Schau dir mal Watchtower an… Da kannst du Labels Containern zuweisen, die aktualisiert werden sollen. In der Watchtower-Config gibst du dann an, wann er nach neuen Images suchen soll.
Läuft bei mir problemlos auf zwei Servern einmal die Woche.
Man kann auch für etwas mehr “Kontrolle” auch nur einen Monitoringmodus aktivieren, wo man eine Mail mit den aktuell verfügbaren Images bekommt. Aufgeräumt hinsichtlich verwaister Images wird dann bei Bedarf auch. 😉
Ich mach es auch mit Watchtower täglich um 5:00 funktionert prima. Einmal musste ich die Jitsi Container neu machen. Ansonsten störungsfrei. Per Email bekomm ich dann die Nachricht was Aktuallisiert wurde.
Hallo Dawid,
danke für den Hinweis.
Werde ich mir demnächst mal anschauen und dann hier eine Anleitung veröffentlichen, wenn es gut läuft.
Viele Grüße
Christian
Watchtower ist eine Supersache. Auch einfach einzurichten für den Laien!
Aber wie habt ihr das mit der Email-Benachrichtigung hinbekommen?
environment:
– WATCHTOWER_NOTIFICATIONS=email
– WATCHTOWER_NOTIFICATION_EMAIL_FROM=****@posteo.de
– WATCHTOWER_NOTIFICATION_EMAIL_TO=****@posteo.de
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.posteo.de
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=****
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=####
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
– WATCHTOWER_NOTIFICATION_EMAIL_DELAY=30
Bzw. könntet ihr so nett sein und eure docker-compose.yml mal posten – wäre sehr hilfreich!
Also wirklich anders sehen meine env Variablen auch nicht aus:
—–
version: ‘3.8’
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
security_opt:
– no-new-privileges:true
networks:
– proxy
volumes:
– /etc/localtime:/etc/localtime:ro
– /var/run/docker.sock:/var/run/docker.sock
environment:
– WATCHTOWER_NOTIFICATIONS=email
– WATCHTOWER_NOTIFICATION_EMAIL_FROM=watchtower@domain.net
– WATCHTOWER_NOTIFICATION_EMAIL_TO=admin@domain.net
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER=mail.domain.net
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=watchtower@domain.net
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=XXX
– WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
– WATCHTOWER_NOTIFICATION_LEVEL=debug
command: –schedule “0 45 1 * * *” –include-stopped –label-enable –stop-timeout 30s
labels:
– “com.centurylinklabs.watchtower.enable=true”
networks:
proxy:
external: true
—–
Leider ist gerade Watchtower nicht einfach zu debuggen, weil du dort nicht – wie bei anderen Containern – einfach mal ein ‘docker exec -it containername bash’ oder ähnliches starten kannst.
Dieser Befehl würde dich sonst in eine gewöhnliche Konsole schicken, wo du dann auch via Telnet schauen kannst, ob du generell an den Server kommst und der auch die Mails entgegennehmen kann.
Aber probier es doch mal mit ‘docker logs containername’… Vielleicht hilft dir das schon auf die Sprünge. Wenn das nichts aussagekräftiges abwirft, kannst du in der “command: “-Spalte deiner docker-compose.yml noch ein “–debug” dazuschreiben und den Container einmal neustarten/-bauen.
Dann sollte das Logfile auch etwas detaillierter sein…
Anwendung auf Nextcloud von v20.0.3 auf 21.0.3:
##BackUp##
cd /opt/containers/nextcloud
#Container herunterfahren
docker-compose down
#Backup erstellen
cp -R /opt/containers/nextcloud/opt/containers/nextcloud.Backup
##Container Update##
docker-compose down
#Update durchführen
docker-compose pull
#Container starten
docker-compose up-d
Bisschen warten bis Nextcloud wieder erreichbar ist. Es werden einige Sicherheits- & Einrichtungswarnungen im Admin Account angezeigt.
##Arbeit an der Datenbank##
# exakten Container Name der Nextcloud-App herausfinden, in meinem Fall nextcloud-app
docker stats
# Wartungsmodus einschalten, nur DB läuft
docker exec –user www-data nextcloud_app php occ maintenance:mode –on
#Datenbank zu bigint konvertieren
docker exec –user www-data nextcloud_app php occ db:convert-filecache-bigint –no-interaction
# Wartungsmodus ausschalten
docker exec –user www-data nextcloud_app php occ maintenance:mode –off
# Datenbank fehlende Indizes hinzufügen
docker exec –user www-data nextcloud_app php occ db:add-missing-indices
##Standard Telefonregion nach ISO 3166-1-Code definieren
Aufwändiger als gedacht
#Auf Nextcloud Container zugreifen
docker exec -it [ContainerID] bash
#Editor eurer Wahl installieren, in meinem Fall nano
apt-get -y install nano
#Nextcloud config editieren
nano /var/www/nextcloud/config/config.php
#Telefonregion nach ISO hinzufügen !!auf Syntax achten
‘default_phone_region’ => ‘DE’,
#Speichern Strg-X, Yes
##php-imagick fehlt die SVG-Unterstützung
weiter im Container arbeiten
#Installiere libmagickcore-6.q16-6-extra
apt update
apt install libmagickcore-6.q16-6-extra
# Container verlassen
Es sollten jetzt alle Sicherheits- & Einrichtungswarnungen im Admin-Account verschwunden sein.
Security-Audit weiterhin nach Christians Anpassungen A+. Nextcloud aktuell auf V21.0.3
Hallo, aktuell ist die NC Version 23.04 draußen. Meine Version 23.03 wollte ich mit dem o.g. Updaten. Funktioniert aber nicht. Es wird das Image 23.03 gezogen. Werden die Images zeitverzögert veröffentlicht oder mache ich was falsch. Danke für eine Rückmeldung.
Hallo Andreas,
hier kannst du dir anschauen, was die aktuelle Version des NC Images ist: https://hub.docker.com/_/nextcloud
Stand jetzt ist das 22.2.7 oder 23.0.4
Viele Grüße
Christian
Hallo Christian, danke für die Antwort,
nachdem der Nextcloud Docker wie hier beschrieben aktualisiert werden sollte kommt jetzt folgender Log.
Configuring Redis as session handler
Initializing nextcloud 23.0.4.1 …
Upgrading nextcloud from 23.0.3.2 …
Another process is initializing Nextcloud. Waiting 10 seconds…
….
Another process is initializing Nextcloud. Waiting 110 seconds…
Timeout while waiting for an ongoing initialization
Da ein löschen des Containers bzw. ein Restore keine Abhilfe schafft bin ich da ziemlich ratlos. Was läuft da schief.
Danke für eine Rückmeldung
Nachtrag:
Das Ergebnis beim Aufruf der Seite ist ein “Bad Gateway”