Backups von Dockern

FR_NAS

Benutzer
Mitglied seit
02. Jan 2021
Beiträge
63
Punkte für Reaktionen
6
Punkte
8
Hallo zusammen,

ich habe eine frage zur richtigen Strategie der Sicherung von Dockern und entsprechender Daten und Datenbanken. Ich frage mich, wie ihr das macht und was die richtige Strategie ist.

Derzeit sichere ich meinen Docker Moderner regelmäßig mit Hyperbackup und mache gelegentlich - z.B. in Vaultwarden oder Joplin Sicherungen der Datenbanken mit Boadmitteln. Das finde ich aber sehr unbefriedigend. Und ich habe jetzt z.B. bei einem Umzug eines Dockers von einem auf ein anderes NAS festgestellt, dass z.B. auch die Konfiguration des Dockers wesentlich ist, um einen Docker wieder so herzustellen, dass man wieder auf die Inhalte zugreifen kann.

Gibt es da keine bessere Methode, mit der man
- das verwendete Docker Image
- die Konfiguration des Docker Containers
- ggf. die Einstellungen für den Reverse Proxy und
- die Datenbank (am besten als Dump)
regelmäßig automatisch sichern kann, so dass man im Revocery Fall am besten mit einer einfachen Wiederherstellung den Docker einschließlich Daten wieder bereitstellen kann?
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.635
Punkte für Reaktionen
1.479
Punkte
234
- das verwendete Docker Image
Images braucht man eigentlich nicht zu sichern, sofern man sie nicht selbst gebaut hat.

- die Konfiguration des Docker Containers
Bash:
#!/bin/bash
# dieses Skript muss vom User root gestartet werden

# anzupassen:
BackUpDir="/volume1/system/DS_BackUps/DOCKER/AutoConfBackup"
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"

    # JSON:
        # https://www.synology-forum.de/threads/automatisches-erstellen-der-export-config-json-files-via-skript.108440/post-1008804
        /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="${BackUpDir}/${container}_$(date +%Y-%m-%d_%H-%M).json" name="${container}"  2> /dev/null

    # optional auch als 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

exit

- ggf. die Einstellungen für den Reverse Proxy und
Dafür habe ich gerade keine elegante Lösung (gesucht). Möglicherweise wird dessen Konfiguration mit den Systemeinstellungen gesichert.

- die Datenbank (am besten als Dump)
Welche DB? Es gibt ja nicht DIE Datenbank. Es gibt zwar eine Systemdatenbank (postgresql) aber Anwenderdaten finden sich eher in einer DB in Docker oder im MariaSQL-Paket. Manche Dockercontainer liegen ihre DB als SQLite DB ab, was dann nur eine Datei im Dateisystem (idealerweise in einem gemapten Ordner des Hosts) ist.
 
  • Like
Reaktionen: FR_NAS

FR_NAS

Benutzer
Mitglied seit
02. Jan 2021
Beiträge
63
Punkte für Reaktionen
6
Punkte
8
Images braucht man eigentlich nicht zu sichern, sofern man sie nicht selbst gebaut hat.


Bash:
#!/bin/bash
[...]
exit

Danke, das Skript schaue ich mir mal an.
Dafür habe ich gerade keine elegante Lösung (gesucht). Möglicherweise wird dessen Konfiguration mit den Systemeinstellungen gesichert.
Ja, stimmt, da ich dieProxy-Einstellungen über den Reverse Proxy um Anwendungsportal einstelle, wird das dort vermutlich gesichert, das schaue ich mir mal an.
Welche DB? Es gibt ja nicht DIE Datenbank. Es gibt zwar eine Systemdatenbank (postgresql) aber Anwenderdaten finden sich eher in einer DB in Docker oder im MariaSQL-Paket. Manche Dockercontainer liegen ihre DB als SQLite DB ab, was dann nur eine Datei im Dateisystem (idealerweise in einem gemapten Ordner des Hosts) ist.
Ja, ich meinte die unterschiedlichen Datenbanken, die die Docker verwenden, bei mir vor allem:
- Vaulwarden mit SQLite,
- Joplin mit postgresql
- JellyFin: weiß ich ehrlich gesagt nicht, ob die Playlists usw. in DB abgelegt sind

Ich bin mir halt nicht sicher, ob insoweit die Sicherung der Datei aus dem Dateisystem ausreicht, ob es dabei zu einer korrupten DB kommen kann, wenn diese z.B. während der Sicherung gerade in Benutzung ist.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.635
Punkte für Reaktionen
1.479
Punkte
234
Jellyfin arbeitet bei mir mit einer SQLite DB. Die nutze ich, wo immer es geht und sie lässt sich problemlos mit dem Dateisystem sichern. Die postgresql eines anderen Projekts bei mir, hab ich noch nie manuell gesichert, weshalb ich da nicht mehr dazu sagen kann.
 

ctrlaltdelete

Benutzer
Contributor
Sehr erfahren
Maintainer
Mitglied seit
30. Dez 2012
Beiträge
14.784
Punkte für Reaktionen
6.561
Punkte
569
Zuletzt bearbeitet:
  • Like
Reaktionen: FR_NAS

coldjack

Benutzer
Mitglied seit
09. Apr 2016
Beiträge
151
Punkte für Reaktionen
5
Punkte
18
Jellyfin arbeitet bei mir mit einer SQLite DB. Die nutze ich, wo immer es geht und sie lässt sich problemlos mit dem Dateisystem sichern. Die postgresql eines anderen Projekts bei mir, hab ich noch nie manuell gesichert, weshalb ich da nicht mehr dazu sagen kann.
Wie hast du eine SQL Datenbank hinzugefügt?
Offiziell wird das von jellifin doch noch nicht angeboten.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.635
Punkte für Reaktionen
1.479
Punkte
234
Ich habe da nichts gemacht. Die liegt im gemappten Ordner config (:/config/data). Da sind 2 DBs: jellyfin.db und library.db.
 

geimist

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
04. Jan 2012
Beiträge
5.635
Punkte für Reaktionen
1.479
Punkte
234
Zu welchem Zweck? Da gibt es bestimmt Lösungen. Wenn du einfach mal in die SQLite-DB hineinschauen möchtest, guck dir mal den DB Browser for SQLite an.
 
  • Like
Reaktionen: coldjack


 

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