Docker auf anderen Pfad einstellen

Dienstag, Januar 10, 2017 by crypti

Da speziell ein Yocto-Build sehr viel Speicherplatz benötigt und mein System nicht allzuviel Platz besitzt (nach 2-3 Builds war die Festplatte voll) habe ich mir eine extra Festplatte für Docker in meinen PC eingebaut.

Diese Festplatte habe ich im ersten Schritt in die fstab eingetragen:

/dev/sdb2  /docker ext4 defaults,noatime,discard,rw,exec 0 1

Wichtig hierbei ist (bei der aktuelle Manjaro-Version 4.4.39-Kernel) die exec-Option, da ansonsten möglicherweise beim Start des docker-Images die Fehlermeldung:

standard_init_linux.go:175: exec user process caused “permission denied”

erscheint.
Anschließend wird der docker-Ordner gemounted:

sudo mount /docker

Nun erzeugt man ein Verzeichnis docker.service.d in /etc/systemd/system:

sudo mkdir /etc/systemd/system/docker.service.d

und anschließend eine Datei imagelocation.conf

sudo vi /etc/systemd/system/docker.service.d/imagelocation.conf

Hier trägt man dann folgende Zeilen ein:

[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -g /docker -H fd://

Nun kann man alle Dateien von /var/lib/docker in das neue Docker-Verzeichnis kopieren:

sudo cp -r /var/lib/docker/ /docker

Nach Abschluss des Kopierens wird der docker-Dienst neu gestartet:

sudo systemctl restart docker

Mit dem Befehl:

docker info

kann überprüft werden, ob das Umstellen funktioniert hat. Hier sollte “Docker Root Dir” auf /docker stehen.