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
Ich hab mich heute wieder an den Thread erinnert.Mir ist heute aufgefallen, dass nur gestartete Container mit deinem Script exportiert werden. Besteht die Möglichkeit, das Script auf alle Container auszuweiten? Bedeutetversion=1das nur die laufenden Container gesichert werden?
</update>Das habe ich sehr ungeschickt geschrieben. ${BACKUP_DIR} muss ab einem Share angegeben sein, bspw.:Hiermit kann man einen Container samt Zustand speichern:
Die erzeugte Datei ist dann unter dem PfadCode:/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container method=export version=1 path="${BACKUP_DIR}" name="${container}"${BACKUP_DIR}/${container}.syno.txzzu finden.
/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container method=export version=1 path="/docker" name="watchtower"
/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="/volume1/docker/watchtower.json" name="watchtower"
Kann ich so nicht bestätigen. Ich habe jetzt unterschiedliche Anzahl von deaktivierten Containern getestet. Die Container, welche deaktiviert werden nicht gesichert, weder mit Einstellungen noch mit. Image (komplett). Das manuelle exportieren funktioniert. Auch wenn die Container laufen, werden diese exportiert. Es liegt definitiv am Zustand des Containers! Getestet auf DSM 7.1.1 Update 3.Weder unter DSM7, noch DSM6 macht es bei mir einen Unterschied, ob der Container läuft oder nicht läuft: beides funktioniert.
docker run -d -t --name test alpinedocker ps -a --filter name=test, Erwartung: Container im State Running /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container method=export version=1 path="/docker" name="test"/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="/volume1/docker/test.json" name="test"ls -l /volume1/docker, Erwartung: /volume1/docker/test.json und /volume1/docker/test.syno.txz existieren.docker stop testdocker ps -a --filter name=test, , Erwartung: Container im State Stopped /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container method=export version=1 path="/docker" name="test"/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="/volume1/docker/test-1.json" name="test"ls -l /volume1/docker, Erwartung: zusätzlich existieren /volume1/docker/test-1.json und /volume1/docker/test-1.syno.txz (weil test.syno.txz schon existiert).Nur mal eine kleine Anmerkung am Rande.Was in jedem Fall nicht funktioniert ist für "name" die Container ID zu verwenden, es muss zwingend der Container Name sein.
name den Filter id verwendet kann auch die ID für diese Zwecke herangezogen werden.
docker ps -a --filter name=test und nicht um das synowebapi.
Das gibt mir langsam echt zu denkenOkay dann hatten wir wohl aneinander vorbeigeredet


Aber diese Aussage ist ja nicht "eindeutig" bei dem geschriebenen Beitrag, denn es gibt nämlich zwei unterschiedliche Befehle die beschrieben sind in denen "name" verwendet wird.Was in jedem Fall nicht funktioniert ist für "name" die Container ID zu verwenden, es muss zwingend der Container Name sein.
Nun ja, ganz von der Hand zu weisen wäre es ja nicht… finde ich… mit einem verschmitzten Lachen im Gesicht. Nein, Quatsch. Alles gut. Mach dir keine Gedanken. Ich muss sowas halt einfach kommentieren, jedoch ohne bösen Hintergedanken. So und nun besser wieder Back to Topic, sonst gibts noch Haue.Du meinst es liegt wohl doch an meiner Person?![]()
Wo wir schon bei der apiund nun besser wieder Back to Topic
SYNO.Docker.Container sind, gibt es hierzu auch seitens Synology eine offizielle API Dokumentation?
Hatte ich mich wohl wieder nicht verständlich genug ausgedrückt? 

… und ich antwortete…Ich fragte explizit nach einer API Dokumentation zu "SYNO.Docker.Container"
… wobei die Betonung auf >nur< lag. Es hätte ja sein können, das du dir aus dieser Information irgendwas für die Docker API herauszufiltern vermagst. Ich geh aber nochmal in mich, da ich auch meine, schon mal irgendwas zum Thema Docker API gesehen zu haben.Ich kenn nur diese hier
Mittlerweile können wir ja (wieder) drüber lachen. Damals waren wir zwei aber schon leicht gegenseitig angepi**tWir beide und Kommunikation...![]()

find /volume1/docker/Docker_BackUps/ -mtime +25 -delete
Bash:BackUpDir="/volume1/MEIN_PATH/" 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" content=$(/usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 name="$container") echo "{${content#*{}" > "${BackUpDir}/${container}_$(date +%Y-%m-%d_%H-%M).json" fi done
[Line 265] Not a json value: CONTAINERNAME
[Line 295] Exec WebAPI: api=SYNO.Docker.Container.Profile, version=1, method=export, param={"name":"CONTAINERNAME"}, runner=SYSTEM_ADMIN
Auch hier werden die JSON-Files erzeugt, aber unvollständig. Das was in den JSON-Files fehlt, kommt über die Konsole:Code:#!/bin/bash BACKUP_DIR="/volume1/MEIN_PATH" IGNORE_CONTAINERS=(jitsi_jicofo jitsi_jvb jitsi_prosody jitsi_web synology_docviewer_2 synology_docviewer_1) EXPORT_DATE="$(date +%Y-%m-%d_%H-%M)" [ ! -d "${BACKUP_DIR}" ] && mkdir -p "${BACKUP_DIR}" echo "exporting container settings to ${BACKUP_DIR}" for container in $(docker ps --format "{{ .Names }}"); do if grep -q "$container" <<< "${IGNORE_CONTAINERS[@]}" ; then echo "${container} is on ignore list. Skipping this container." continue else echo "${container} export" /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="${BACKUP_DIR}/${container}_${EXPORT_DATE}.json" name="${container}" 2> /dev/null fi done
CONTAINERNAME export
{
"data" : {},
"httpd_restart" : false,
"success" : true
}
Code:#!/bin/bash BACKUP_DIR="/volume1/docker/backup" IGNORE_CONTAINERS=(jitsi_jicofo jitsi_jvb jitsi_prosody jitsi_web synology_docviewer_2 synology_docviewer_1) EXPORT_DATE="$(date +%Y-%m-%d_%H-%M)" [ ! -d "${BACKUP_DIR}" ] && mkdir -p "${BACKUP_DIR}" echo "exporting container settings to ${BACKUP_DIR}" for container in $(docker ps --format "{{ .Names }}"); do if grep -q "$container" <<< "${IGNORE_CONTAINERS[@]}" ; then echo "${container} is on ignore list. Skipping this container." continue else echo "${container} export" /usr/syno/bin/synowebapi --exec api=SYNO.Docker.Container.Profile method=export version=1 outfile="${BACKUP_DIR}/${container}_${EXPORT_DATE}.json" name="${container}" 2> /dev/null fi done find "$backup_dir" -name "*.json" -mtime +7 -exec rm {} \; exit
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.