Ändern des Docker root-Verzeichnisses

Die Docker Arbeitsumgebung kann im Laufe der Zeit je nach Arbeitsintensität gut und gerne mehrere Gigabyte verschlingen. Geht in dem Moment falsch kalkulierter Plattenplatz zur Neige, ist möglicherweise ein Umzug des Arbeitsverzeichnisses von Docker vonnöten. Damit dies gelingt, sind nur wenige Anpassungen erforderlich, die recht schnell und simpel abgehandelt werden können.

Standardmäßig ist das Wurzelverzeichnis von Docker unter /var/lib/docker zu finden. Genauer herausfinden lässt sich dies mit:

docker info | grep -i root

Bevor wir nun beginnen werden zunächst sämtliche laufende Docker Instanzen geschlossen und der Dienst gestoppt:

sudo systemctl stop docker.service
sudo systemctl stop docker.socket

Nun passen wir die systemd-Datei von Docker an:

sudo nano /lib/systemd/system/docker.service

Dort findet sich die Zeile ‘ExecStart’. Diese passen wir an und fügen ihr den Pfad mit dem Parameter ‘-d’ hinzu, den wir als neues root-Verzeichnis von Docker definieren möchten. Das sieht dann in etwa so aus:

In diesem Fall wird sich Docker in dem Ordner /docker/ ein neuesn Zuhause einrichten. Falls dieser Ordner noch nicht existiert, legen wir ihn noch an:

sudo mkdir -p /docker/

Jetzt ziehen wir sämtliche Dateien von unserem alten root-Verzeichnis ins neue um:

sudo bash -c "mv /var/lib/docker/* /docker/"

Meiner bisherigenErfahrung nach, zieht das Kommando ‘mv’ die Dateien samt Ordner- und Dateiberechtigungen um. Um sicherzugehen, überprüfen wir dies nachdem der Kopiervorgang abgeschlossen ist mit:

ls -la /docker/

Da wir eine systemd-Konfigurationsdatei angepasst haben, muss der entprechende Dienst diese einmal neu einlesen:

sudo systemctl daemon-reload

Zuletzt fahren wir den Docker-Dienst wieder hoch:

sudo systemctl start docker.service
sudo systemctl start docker.socket

Über die Prozessliste können wir nun herausfinden, ob Docker den neuen Pfad als root-Verzeichnis akzeptiert hat:

ps aux | grep -i docker

2 Kommentare zu „Ändern des Docker root-Verzeichnisses“

  1. Manfred Komorowski

    Hallo Marian
    habe soeben das Tutorial ausprobiert, was soll ich sagen: “einfach Klasse erklärt und sauber dokumentiert”
    Danke dafür.

    Mit freundlichen Grüßen
    Manfred K.

  2. Hermann Schmidt

    Hallo Marian, ich habe an meinem Raspberry eine ICY Box mit 2 Festplatten im RAID1. Auf dem Raspberry laüft Nextcloud seit 3 Jahren und die Daten legt Nextcloud ausschließlich auf dem RAID ab. Jetzt habe ich docker installiert und Paperless ngx im Container. Die Konfiguration von Paperless habe ich so angepasst, dass die Daten auch auf dem RAID gespeichert werden, klappt auch ohne Probleme. Nun stelle ich fest, alles landet auch als Kopie auf der der SD-Karte in /var/lib/docker. In Deiner Anleitung wird mit mkdir /docker/ das Verzeichnis erstellt, aber wieder auf der SD? Oder wo liegt es? Ich bin neuling in Linux… Ich möchte gerne das docker (Volumes) komplett auf /media/festplatte/docker laüft. Einfach weil die Datenbank auf der SD irgendwann voll ist. Kannst du mir da einen Tipp geben?
    Gruß Hermann

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Nach oben scrollen