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/docker
Datei mit der-g
Option:DOCKER_OPTS="-dns 8.8.8.8 -dns 8.8.4.4 -g /mnt"
Fedora / Centos: Bearbeiten
/etc/sysconfig/docker
und fügen Sie die-g
Option 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.gz
3) Verschieben Sie das
/var/lib/docker
Verzeichnis auf Ihre neue Partition:mv /var/lib/docker /mnt/pd0/docker
4) Machen Sie einen Symlink:
ln -s /mnt/pd0/docker /var/lib/docker
5) 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 start
7) Starten Sie Ihre Container neu. Lösen Sie den Symlink.
Um das data
Verzeichnis docker
darin zu ändern , muss es mit der Option ausgeführt werden -g /my/data
. In meinem habe /etc/default/docker
ich gesetzt:
DOCKER_OPTS="-g /srv/docker"
Siehe auch meine Notizen hier .
Um das data
Verzeichnis zu ändern, habe lxc
ich 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-data
befindet 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 .