Frage zum Backup/Wiederherstellung von Docker/Portainer etc.

Die Grillratte

Benutzer
Mitglied seit
13. Apr 2023
Beiträge
5
Punkte für Reaktionen
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 ?
 

EDvonSchleck

Gesperrt
Mitglied seit
06. Mrz 2018
Beiträge
4.703
Punkte für Reaktionen
1.114
Punkte
214
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.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.264
Punkte für Reaktionen
923
Punkte
174
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.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
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.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.264
Punkte für Reaktionen
923
Punkte
174
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.
 

Die Grillratte

Benutzer
Mitglied seit
13. Apr 2023
Beiträge
5
Punkte für Reaktionen
1
Punkte
3
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
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
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.
 

Die Grillratte

Benutzer
Mitglied seit
13. Apr 2023
Beiträge
5
Punkte für Reaktionen
1
Punkte
3
Ö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:

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
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

Lumix_216

Benutzer
Mitglied seit
14. Jan 2016
Beiträge
113
Punkte für Reaktionen
6
Punkte
18
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.
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
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.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
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
 

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
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

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
Ja genau so hab ich das auch am Laufen.
 

Lumix_216

Benutzer
Mitglied seit
14. Jan 2016
Beiträge
113
Punkte für Reaktionen
6
Punkte
18
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.
 

plang.pl

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
28. Okt 2020
Beiträge
14.180
Punkte für Reaktionen
4.915
Punkte
519
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

Monacum

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
03. Jan 2022
Beiträge
2.049
Punkte für Reaktionen
900
Punkte
204
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


 

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