Docker migration auf neues Volume

Ede

Benutzer
Mitglied seit
23. Jan 2021
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Hallo,

ich würde gerne meine Docker container auf ein anderes volume migrieren.
Nun ist die Frage wie ich am besten vorgehe?
Normalerweise müsste es ja funktionieren, wenn ich das Paket deinstlliere und dann auf dem neuen volume installiere?
Außerdem sollten denke ich die Ordner /volume1/@appstore/Docker und /volume1/@Docker auf das volume 2 kopiert / verschoben werden?
Außerdem müsste ich dann anschließend in Portainer (nutze ich für die Verwaltung der Container) die mounts entsprechend anpassen.
Aber dann sollte es doch so gehen, oder?

Danke & GRuß,
Ede
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.475
Punkte für Reaktionen
358
Punkte
103
Wenn beide Volumes mit dem gleichen Dateisystem formatiert sind, dann geht es relativ easy:
1. Docker Package stoppen.
2. Daten von /volume1/@appstore/Docker nach /volume2/@appstore/Docker verschieben
3. Daten von /volume1/@Docker nach /volume2/@Docker verschieben
4. Symlink /volume2/@appstore/Docker/docker von /volume1/@Docker auf volume2/@Docker "umbiegen"
5. Docker Package deinstallieren
6. Docker Package auf volume2 neu installieren

Evtl. sind Schritt 2 und 4 nicht mal notwendig - da bin ich mir aber nicht sicher. All das Zeug sollte mit einer Neuinstallation auf volume2 korrekt sein.

Wenn eins der Synology-Volumes BTRFS ist und das andere EXT4, dürfte es nicht so einfach gehen, da beide einen unterschiedlichen Storage Driver verwenden und so weder die Images aus dem Image Cache, noch die Container wiederverwendet werden können.
 
Zuletzt bearbeitet:

Ede

Benutzer
Mitglied seit
23. Jan 2021
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Danke. Interessanterweise läuft Portainer anschließend fehlerfrei.
Aber ich bekomme die anderen Container weder via den configs vom alten Laufwerk, noch vom neuen zum laufen :(
Fehlermeldung: OCI runtime failed container_linux.go:354: starting container process caused „exec: \“ /s6-init\“: stat /s6-init: no such file or directory“: unknown.

Habe zu deinen Punkten noch /volume1/docker nach /volume2/docker_cfg kopiert. DOrt lagen die config dateien der einzelnen Container.
Aber auch wenn ich auf volume 1 mappe klappt es nicht.
Hast Du noch eine Idee?
Danke & Gruß
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.475
Punkte für Reaktionen
358
Punkte
103
Liest sich so als wenn jetzt ein anderer Storage-Driver verwendet wird... Ich hatte vorher ja schon geschrieben, dass es nur problemlos funktioniert, wenn beide Syno-Volumes mit dem gleichen Filesystem formatiert wurden. Der Storage-Driver ist dafür verantwortlich die einzelnen Image-Layer und einen Copy-on-Write Layer als Container Filesystem "zusammenzusetzen". Es wirkt so als wenn genau das nicht bei dir funktioniert.

Bei mir liegen auf /volume1/docker nur die von mir exportierten Container-Konfigurationen und natürlich in Unterverzeichnissen die Ziele für Volume Mappings. Man hätte das docker share nicht mal umziehen müssen.

Das weitere vorgehen hängt von den vorliegenden Faktoren ab:
- selber Storage-Driver? (wenn nicht, dann sind Images und Container im Dutt)
- Container über docker-compose erzeugt? (dann lohnt es sich nicht rumzudoktern, kann direkt neu-erzeugt werden)
- Export der Container-Einstellungen vorhanden? ( siehe docker-compose, aber ggf. mit mehr Aufwand weil Anpassungen im json notwendig sind)
- Alle Dauerhaft zu speichernden Daten im Container wurde über Volumes rausgemapped (nur wenn das der Fall ist bringen die beiden vorherigen Punkte etwas)
 

Ede

Benutzer
Mitglied seit
23. Jan 2021
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Bei mir liegen auf /volume1/docker nur die von mir exportierten Container-Konfigurationen und natürlich in Unterverzeichnissen die Ziele für Volume Mappings. Man hätte das docker share nicht mal umziehen müssen.
ist bei mir genauso. Hintergrund des „umziehens“ ist aber, dass ich docker komplett auf SSD umziehen wollte wegen der Plattengeräusche. Sprich aktuell habe ich die daten noch (damit ich noch zurück kann) auf /volume1/docker als auch unter /volume2/docker_cfg.
Das weitere vorgehen hängt von den vorliegenden Faktoren ab:
- selber Storage-Driver? (wenn nicht, dann sind Images und Container im Dutt)
=> ist beides btrfs
- Container über docker-compose erzeugt? (dann lohnt es sich nicht rumzudoktern, kann direkt neu-erzeugt werden)
- Export der Container-Einstellungen vorhanden? ( siehe docker-compose, aber ggf. mit mehr Aufwand weil Anpassungen im json notwendig sind)
- Alle Dauerhaft zu speichernden Daten im Container wurde über Volumes rausgemapped (nur wenn das der Fall ist bringen die beiden vorherigen Punkte etwas)
Ich habe auch einfach ein neues Image runtergeladen und auf die config ordner und files referenziert.
Gruß,
Ede
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.475
Punkte für Reaktionen
358
Punkte
103
Ich bin erstaunt das es nicht reibungslos funktioniert hat...

Ich habe schon etliche Male das Docker root-data Verzeichnis auf unterschiedlichen Distro's über Maschinen oder auch nur Laufwerken verschoben - sofern derselbe Storage-Driver an Quelle und Ziel verwendet wurde war es nie ein Problem. Allerdings hatte keins davon bisher ein BTRFS Dateisystem. Bei BTRFS wird es auch als Storage-Driver verwendet, es sei den man konfiguriert explizit einen anderen.

Ich persönlich würde alles wieder deinstallieren, dass Verzeichnis /volume2/@Docker umbenennen, das Package neu installieren und dann die Container aus den exportierten Einstellungen wiederherstellen - mir wäre es nicht geheuer das da ggf. halbgare Zustände in den Metadaten sind.
 
  • Like
Reaktionen: oschmidt

Ede

Benutzer
Mitglied seit
23. Jan 2021
Beiträge
6
Punkte für Reaktionen
0
Punkte
1
Habe es schlussendlich auch so gemacht.

Danke an alle und einem schönen Abend!
 
Zuletzt bearbeitet von einem Moderator:

oschmidt

Benutzer
Mitglied seit
17. Sep 2020
Beiträge
92
Punkte für Reaktionen
31
Punkte
68
Ich persönlich würde alles wieder deinstallieren, dass Verzeichnis /volume2/@Docker umbenennen, das Package neu installieren und dann die Container aus den exportierten Einstellungen wiederherstellen - mir wäre es nicht geheuer das da ggf. halbgare Zustände in den Metadaten sind.

Hab meine Docker Package ebenfalls auf ein neues Volume verschoben.
Hab alles exportiert und wieder importiert, dass funktionierte problemlos (btrfs -> btrfs).
 
  • Like
Reaktionen: haydibe


 

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