Verschieben Sie Docker-Daten (Bilder und Container) auf ein separates Laufwerk mit unterschiedlichem FS

Verschieben Sie Docker-Daten (Bilder und Container) auf ein separates Laufwerk mit unterschiedlichem FS

Ich plane, Docker-Daten (Bilder und Container) auf ein separates Laufwerk zu verschieben, da sie viel Speicherplatz benötigen.

Soweit ich weiß, kann ich es /var/lib/dockerauf ein separates Laufwerk verschieben und einen Softlink dazu erstellen. Aber ich habe gelesen, dass BTRFS die beste Dateisystemoption für Docker ist.

Ich vermute jedoch, dass es nicht ausreicht, das externe Laufwerk auf BTRFS zu formatieren und vorhandene Ordner dorthin zu verschieben. Wie ich sehe, hängt der Inhalt dieses Ordners vom verwendeten Dateisystem ab.

Wie kann ich Docker-Ordner (Bilder und Container) auf dem externen Laufwerk mit einem anderen Dateisystem korrekt verschieben (neu erstellen)?

Antwort1

Wie Sie bereits sagten, reicht es nicht aus, die Docker-Images/Container einfach vom standardmäßigen AUFS-Laufwerk auf ein BTRFS-formatiertes Laufwerk zu verschieben oder zu kopieren. Sie können also als ersten Schritt alle Ihre Container als Images festschreiben und docker saveBefehle verwenden, um die Images als TAR-Dateien zu speichern. Nachdem Sie Docker für die Verwendung von BTRFS vorbereitet haben, laden Sie docker loaddie Images in den neuen Speichertreiber.

Die Schritte wären ungefähr wie folgt - das habe ich in meiner Ubuntu 14.10-Box gemacht -

  • Speichern Sie Ihre Bilder
    docker save IMAGEID > /tmp/redis.tar
  • BTRFS vorbereiten
mkfs.btrfs /dev/sdb
 mkdir /var/lib/docker-btrfs
 mount /dev/sdb /var/lib/docker-btrfs/
  • Stoppen Sie Docker, richten Sie es so ein, dass es BTRFS nutzt und ausführt.
Dienst Docker Stopp
docker -d -s btrfs --graph="/var/lib/docker-btrfs" -H unix:///var/run/docker.sock

Der obige Schritt kann auch durch Ändern von /etc/default/docker ausgeführt werden.

  • Laden Sie die Bilder.
Docker-Laden --Input /tmp/redis.tar

Sie sollten in der Lage sein, die Bilder anzuzeigen und Container von hier aus auszuführen. Für Container können Sie auch Methoden ausprobieren export, importdas habe ich allerdings noch nie ausprobiert.

verwandte Informationen