Ä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
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.
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
Hallo Hermann,
Das klingt für mich danach, die „Fehlerursache“ in dem Tool Paperless-ngx zu suchen. Möglicherweise gibt es dort eine Einstellung, die die Daten an gleich mehreren Orten ablegt.
Leider kenne ich das Tool nicht und kann daher schwerlich eine Fern-Diagnose stellen. :-/
viele Grüße