Mit der Schwarminterpretation können Ihre einzelnen Container/Aufgaben innerhalb des Dienstes neu gestartet werden (z. B. wenn ein Knotenfehler vorliegt oder Ihre Anwendung abstürzt). Für persistente Daten würde ich ein externes Volume verwenden und dieses Volume direkt sichern. Wenn Sie dies in Schwarm tun möchten, können Sie die Container verpflichten es schafft durch den spezifischen Behälter lokalisieren und mit den Standardbefehlen zu begehen:
$ docker service create --name test-commit busybox /bin/sh -c 'while true; do ls/>/tmp/ls.`date +%T`.log; sleep 30; done'
2vbnf5s39vs0jfc53at3ko1cg
$ docker service ls
ID NAME REPLICAS IMAGE COMMAND
2vbnf5s39vs0 test-commit 1/1 busybox /bin/sh -c while true; do ls/>/tmp/ls.`date +%T`.log; sleep 30; done
$ docker service ps test-commit
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
eu28da042s9tdwlddzk6adkan test-commit.1 busybox docker-demo Running Running 9 seconds ago
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
545e7fe6f5bd busybox:latest "/bin/sh -c 'while tr" 28 seconds ago Up 26 seconds test-commit.1.eu28da042s9tdwlddzk6adkan
$ docker diff test-commit.1.eu28da042s9tdwlddzk6adkan
C /tmp
A /tmp/ls.12:02:13.log
A /tmp/ls.12:02:43.log
$ docker commit test-commit.1.eu28da042s9tdwlddzk6adkan
test-commit:1
sha256:2255b476b307b69cf20afbc7c46fae43f05c92a70f1525aa5d745c26a406dc90
$ docker images | grep test-commit
test-commit 1 2255b476b307 9 seconds ago 1.093 MB
sind sicher, dass Sie in Schwarm verfügbar begehen? – abovesun
Entschuldigung, meine Schuld - ich muss auch die Kopfzeile Ihrer Frage lesen. Ich habe wenig bis keine Erfahrung mit Swarm, aber ich denke, es ist immer noch eine gute Idee, die tatsächlichen Daten außerhalb des Containers zu halten. – Martin