Frage zum Backup/Wiederherstellung von Docker/Portainer etc.

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Die Grillratte

Benutzer
Registriert
13. Apr. 2023
Beiträge
5
Reaktionspunkte
1
Punkte
3
Mahlzeit

Habe jetzt auch eine DS923+ mit 4x 6TB Festplatten, zusätzlichen 32GB RAM und einer Eaton 650Pro USV (y)

Habe mir jetzt Docker / Portainer / PaperlessNGX und auch BookStack installiert - alles nach Anleitung von hier

Frage: Falls oder wenn ich mal ein Problem mit meiner DS923+ haben sollte, wie kann ich dann dieses BookStack komplett mit allen Inhalten etc. wiederherstellen ?

Bevor ich jetzt nämlich tatsächlich anfang das BookStack Wiki mit all meinen Inhalten zu befüllen, würde ich gern vorher wissen was oder wie ich in einem Notfall eine Wiederherstellung sämlicher Inhalte durchführen kann.

Meine Idee als Sicherung wäre da...
- einfach nur den kompletten Order /Docker sichern - weil dort ja auch die Ordner von Portainer, Paperlessngx und BookStack und somit auch alle Dateien liegen

Meine Idee als Wiederherstellung wäre da...
- Docker installieren - Portainer neu installieren - die Ordner aus dem Docker Backup wiederherstellen - ggfl. Paperless & BookStack ebenfalls neu installieren ?

Wahrscheinlich wird es dann doch nicht so einfach sein ?
 
Genau, den Ordner /docker mit allen Unterordner (Mounts) sichern. Am besten machst du das mit Hyperbackup. Zusätzlich kannst du auch die Container mit einem Script sichern. Die Container, welche nicht gesichert werden sollen, kannst du unter IGNORE_CONTAINERS ausschließen.

Zum Wiederherstellen musst du nur den Ordner /docker wiederherstellen und die Container wieder importieren (Backup)

Auch kannst du die Container automatisch mit Watchtower updaten.
 
Ich wäre mir nicht so sicher, ob das in der Form so vollkommen ausreicht. Die Container selbst werden ja auch mit Umgebungsvariabeln gefüttert..
Zum Teil sind da sogar Enryption_Keys eingebettet, um auf die Daten im Volume zugreifen zu können. Es müssten also die Einstellungen des Containers (ENV) ebenfalls gesichert werden. Wenn ich das richtig überblicke, kann das Portainer ebenfalls übernehmen.

Also eine Ergänzung wäre dann also ein Backup von Portainer ebenfalls durchzuführen.
 
Wenn man Portainer nicht verwendet, funktioniert das oben beschriebene Vorgehen für Paperless auf jeden Fall. Die beiden Konfigurationsdateien (yml und env) liegen ebenfalls in einem Ordner auf der Festplatte und nicht nur im Container. Und damit ist das ganze auch bei Installation auf einer neuen Festplatte wieder ohne Probleme zu starten.

Ich habe das ganze vor drei Wochen das letzte Mal praktisch bei meiner eigenen Installation durchgeführt, weil ich Anpassungen vorgenommen habe, die ich danach auch wieder zurücksetzen wollte.
 
Meine Aussage ist auch eher allgemeingültiger Natur. Ich gehe jetzt nicht davon aus, dass man zu jeder Installation die passende .yaml oder .env zusätzlich im Docker-Verzeichnis abgespeichert hat. Ich erspare mir das zum Bleistift und verwende grundsätzlich custom templates für die Installation.
Ich probiere viel aus.. wenn ich dann den Container dann weghaue und später doch mal wieder verwenden möchte, ist die Installation per Portainer GUI mit drei Klicks getan - nur am Rande.
Crw5LXf.png


Insofern Portainer-Backup schadet nicht. Bin mir aber unsicher, ob das in der Community Edition zur Verfügung steht.
 
Ich denke am besten & einfachsten ist oder wäre es, wenn ich Portainer, Papperless & auch BookStack einfach mal komplett lösche und um zu sehen wie ich es (als Laie) am besten wiederherstellen kann.

Portainer kann ich tatsächlich exportieren (siehe Screen), aber wo ich ich das dann wieder importieren ?


Bildschirmfoto 2023-04-13 um 15.06.25.png
 
Du hast vollkommen recht und Benutzer wie du, die schon seit Jahren Portainer nutzen, werden auch dabei bleiben; gerade bei neueren Benutzern kann ich mir aber vorstellen, dass sie vom Container Manager App DSM 7.2 Gebrauch machen. Es gibt auf jeden Fall für beide Wege gute Möglichkeiten, das Ganze sicher irgendwo hin ab zu speichern, um es im Falle des Falles auf einem neuen NAS wieder zu starten.
 
Öhm, ich benutze Portainer seit ca. 1 Woche ;) Im Moment läuft zwar alles wie "geschmiert", reibungslos & ohne Probleme - aber ich möchte ja nicht alles mit Daten & Inhalten befüllen nur um eines Tages dazustehen und keinen Zugriff mehr auf diese daten zu haben - also möchte ich vorher wissen was im NOTFALL zu ist.

Da ich jetzt von Servern, Linux (verwende ich zwar auch) etc. keinerlei Ahnung oder nicht viel davon habe, dachte ich eben ich installiere mir dieses BookStack auf die DS - alternativ hätte ich das ganze schon längst über einen eigenen gemieteten Server laufen lassen.
 
Zuletzt bearbeitet von einem Moderator:
Achtung beim sichern von Datenbanken. Bookstack kann ja nur mit einer MariaDB als Datenbank betrieben werden (korrigiert mich, wenn ich falsch liege). Bei Datenbanken ist es wichtig, einen Dump der Datenbank zu erstellen und diesen dann wegzusichern. Bzw. habe ich das schon oft gelesen und praktiziere das auch selbst so. Bei einem reinen wegsichern vom Docker-Share kann es passieren, dass das DB-Backup korrupt ist
 
  • Like
Reaktionen: Monacum
Guten Morgen!

Wenn ich hier einmal anknüpfen darf, da der eigentliche Thread offenbar abgearbeitet ist, aber mein Thema betrifft:
Ich habe erstmals den Container Manager genutzt und Jellyfin installiert. Damit will ich meine Film-, Video- und Musikbibliotheken in meinem Home-Netzwerk streamen. Funktioniert auch gut.
Wenn ich mit Hyper Backup regelmäßig meine DS423+ sichere, würde dann auch beim Wiederherstellen alles rund um den Container Manager mit allen Container - in diesem Fall also Jellyfin - wieder funktionieren?
Und überhaupt: Würde ein Herunterfahren der DS (oder gar ein Absturz durch Stromausfall) in diesem Bereich Schaden anrichten?

Sorry für die vielleicht blöden Fragen, aber das ist für mich absolutes Neuland.
 
Nein, das Sichern von Container Manager allein reicht nicht, die von den Containern erzeugten und verwalteten Daten müssen auch irgendwo auf der Festplatte gespeichert sein, damit man sie einfach mit Hyper Backup sichern und wieder einspielen kann. Für die meisten Container gibt es dafür sogenannte Mount Points, die man in der Konfiguration angeben kann und die angeben, wo genau auf dem/den Volumes die Daten gesichert werden sollen.

Bei Jellyfin sind das anscheinend drei Ordner:
/srv/jellyfin/config:/config
/srv/jellyfin/cache:/cache
/media:/media

Die Ordner vor (!) dem Doppelpunkt kannst du nach deinem Belieben anpassen mit einem Pfad auf deiner Synology, die Angabe nach dem Doppelpunkt bezieht sich auf den Datenort innerhalb des Containers.
 
Genau, die Daten müssen auf der DS liegen und nicht im Container. Dann kann man die einfach mit wegsichern. Zusätzlich empfehle ich noch, das Docker-Compose Script mit zu sichern. Dann kann man bei Bedarf den Container wieder identisch starten
 
Genau, dafür bietet sich beispielsweise folgendes Script an:

Code:
#!/bin/bash

# anzupassen:
BackUpDir="/volume2/docker/backups-yaml"
IgnoredContainer=(jitsi_jicofo jitsi_jvb jitsi_prosody jitsi_web synology_docviewer_2 synology_docviewer_1)

#–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
for container in $(docker ps --format "{{ .Names }}"); do
    if grep -q "${container}" <<< "${IgnoredContainer[@]}" ; then
        echo "${container} is on ignore list. Skipping this container."
        continue
    else
        echo "${container} export"

    # YAML:
        # https://www.synology-forum.de/threads/docker-container-automatische-docker-compose-file-erstellen-als-backup.110444/post-897496
        docker run --rm -v /var/run/docker.sock:/var/run/docker.sock red5d/docker-autocompose "${container}" > "${BackUpDir}/${container}_$(date +%Y-%m-%d_%H-%M).yml"
    fi
done
find "$backup_dir" -name "*.yml" -mtime +90 -exec rm {} \;
exit

Das erstellt diese Konfigurationen und legt sie in den unter BackUpDir="/volume2/docker/backups-yaml" spezifizierten Ordner. Der Teil find "$backup_dir" -name "*.yml" -mtime +90 -exec rm {} \; löscht in diesem Ordner alle Dateien, auf die -mtime +90 zutrifft, die also das letzte Mal vor mehr als 90 Tagen modifiziert wurden, das kann man auch noch anpassen.

Für das Script musst du nur eine Aufgabe im Aufgabenplaner (Systemsteuerung) erstellen und ein Ausführungsintervall festlegen, dann läuft das im Hintergrund automatisch und den Ordner kannst du ebenfalls, wie von plang.pl beschrieben, mit Hyper Backup wegsichern.
 
  • Like
Reaktionen: *kw* und Lumix_216
Ja genau so hab ich das auch am Laufen.
 
Vielen Dank!
Oh je, für Docker-Einsteiger schwer zu verdauen. Ich habe im Rahmen der Einrichtung cache, config und media mal angelegt. Die sind im Docker-Verzeichnis. Sollten somit auf der DS liegen. Wie man das Docker-Compose Script sichert, muss ich noch herausfinden.

Bitte noch kurz zu dem Punkt "runterfahren" - das schadet nicht, oder?

okay, das hat sich jetzt teilweise mit weiteren Antworten überschnitten. Ich werde das ausgiebig studieren.
 
Wenn die DS hart ausgeht (also kein Strom mehr), kann das immer folgen für das RAID / das Volume haben. Hat aber nix mit Docker zu tun, sondern eher generell damit, wie die DS Daten schreibt (Stichwort RAM-Cache). Deshalb hat man ne USV und ein Backup
 
  • Like
Reaktionen: Lumix_216
Bitte noch kurz zu dem Punkt "runterfahren" - das schadet nicht, oder?
Nein, wenn die Daten so wie oben beschrieben und besprochen in einem Verzeichnis auf irgendeiner Festplatte liegen, dann kannst du die Disk Station jederzeit ohne Probleme herunterfahren und die Daten liegen sicher auf der Festplatte, wenn kein Problem mit der Festplatte auftritt.

Deswegen ist das Sichern auf der Festplatte auch so wichtig, ansonsten würde auch jedes Update eines Containers das Risiko mit sich bringen, dass die Daten danach nicht mehr im Container liegen und somit verloren wären.
 
  • Like
Reaktionen: Lumix_216

Additional post fields

 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat