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.

Teile diesen Beitrag
Christian

Categories:

6 Kommentare

  1. 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. 😉

    • 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…

  2. 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.