Antworten:
Ich glaube, dass Sie in diesem Handbuch eine gute Erklärung haben werden.
Sie können das Speicherbasisverzeichnis von Docker (wo sich Container und Images befinden) mit der Option -g ändern, wenn Sie den Docker-Dämon starten.
Ubuntu / Debian: Bearbeiten Sie Ihre
/etc/default/dockerDatei mit der-gOption:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"Fedora / Centos: Bearbeiten
/etc/sysconfig/dockerund fügen Sie die-gOption in der Variablen other_args hinzu: z.other_args="-g /var/lib/testdir". Wenn es mehr als eine Option gibt, stellen Sie sicher, dass Sie sie in "" einschließen. Nach einem Neustart (Neustart des Service-Dockers) sollte Docker das neue Verzeichnis verwenden.Die Verwendung eines Symlinks ist eine weitere Methode zum Ändern des Bildspeichers.
Achtung - Diese Schritte hängen davon ab, dass Ihr aktuelles / var / lib / docker ein tatsächliches Verzeichnis ist (kein Symlink zu einem anderen Speicherort).
1) Docker stoppen :
service docker stop. Stellen Sie sicher, dass auf keinem Docker-Prozess ps faux ausgeführt wird2) Double Check Docker läuft wirklich nicht. Schauen Sie sich das aktuelle Docker-Verzeichnis an: ls
/var/lib/docker/2b) Erstellen Sie ein Backup -
tar -zcC /var/lib docker > /mnt/pd0/var_lib_docker-backup-$(date +%s).tar.gz3) Verschieben Sie das
/var/lib/dockerVerzeichnis auf Ihre neue Partition:mv /var/lib/docker /mnt/pd0/docker4) Machen Sie einen Symlink:
ln -s /mnt/pd0/docker /var/lib/docker5) Werfen Sie einen Blick auf die Verzeichnisstruktur, um sicherzustellen, dass sie so aussieht wie vor dem MV:
ls /var/lib/docker/(Beachten Sie den abschließenden Schrägstrich auf6) Starten Sie die Docker-Sicherung
service docker start7) Starten Sie Ihre Container neu. Lösen Sie den Symlink.
Um das dataVerzeichnis dockerdarin zu ändern , muss es mit der Option ausgeführt werden -g /my/data. In meinem habe /etc/default/dockerich gesetzt:
DOCKER_OPTS="-g /srv/docker"
Siehe auch meine Notizen hier .
Um das dataVerzeichnis zu ändern, habe lxcich Folgendes eingegeben /etc/lxc/lxc.conf:
lxc.lxcpath = /srv/lxc
Um die Antwort von @ MattK zu erweitern:
In der Docker-Dokumentation zur Steuerung des Docker-Dämons wird folgende plattformunabhängige Methode vorgeschlagen:
Bearbeiten Sie die Datei /etc/docker/daemon.json, um die Zeile zu enthalten
{
"data-root": "/mnt/docker-data",
(...)
}
Wo /mnt/docker-databefindet sich das Verzeichnis, in dem die Docker-Images und -Container gespeichert werden sollen?
Dann
sudo systemctl restart docker
Sie können überprüfen, ob es funktioniert hat, indem Sie ausführen
docker info
und suchen Sie nach dem Inhalt der Zeile, die mit beginnt Docker Root Dir:.
Siehe auch https://stackoverflow.com/a/50217666/2209313 und https://unix.stackexchange.com/q/452368/36043 .