So ändern Sie den Standardspeicherort von Docker-Images (Lösung)

So ändern Sie den Standardspeicherort von Docker-Images (Lösung)

Aufgrund der anfänglichen Partitionierung des Systems ist die entsprechende / Partition im Betriebssystem nicht zu groß und das /var-Verzeichnis wird nicht separat partitioniert. Wenn Sie den Docker-Dienst darauf ausführen, wird die ursprünglich große Partition nach längerer Verwendung zunehmend unzureichend. Wie kann man mit diesem Problem besser umgehen?

1. Verwenden Sie Softlinks

Wir wissen, dass sich der Speicherort des Docker-Containers im Betriebssystem standardmäßig im Verzeichnis /var/lib/docker befindet. Sie können den spezifischen Speicherort mit dem folgenden Befehl anzeigen.

#Standardspeicherort$ sudo docker info | grep "Docker Root Dir"

Der direkteste und effektivste Weg, das Problem der unzureichenden Standardspeicherkapazität zu lösen, besteht darin, in diesem Verzeichnis eine neue Partition bereitzustellen. Falls der ursprüngliche Systemspeicherplatz jedoch unverändert bleibt, wird die Softlink-Methode verwendet, um den Speicherpfad des Images und des Containers zu ändern und so denselben Zweck zu erreichen.

# Stoppen Sie den Docker-Dienst $ systemctl restart docker  
# Stoppen Sie den Docker-Dienst $ service docker stop

Verschieben Sie dann das gesamte Verzeichnis /var/lib/docker in einen Zielpfad, der nicht zu viel Platz einnimmt. Wenn Sie Docker zu diesem Zeitpunkt starten, stellen Sie fest, dass das Speicherverzeichnis immer noch das Verzeichnis /var/lib/docker ist, es jedoch tatsächlich auf der Datenfestplatte /data/docker gespeichert ist.

# Verschieben Sie den ursprünglichen Inhalt $ mv /var/lib/docker /data/docker  
# Verknüpfung $ ln -sf /data/docker /var/lib/docker

2. Geben Sie die Startparameter des Containers an

Geben Sie in der Konfigurationsdatei den Container-Startparameter --graph=/var/lib/docker an, um das Image und den Container-Speicherpfad anzugeben. Die Konfigurationsdatei von Docker kann die meisten Parameter der Hintergrundprozesse festlegen, ihr Speicherort ist jedoch in den einzelnen Betriebssystemen inkonsistent. Der Speicherort in Ubuntu ist die Datei /etc/default/docker und der Speicherort in CentOS ist die Datei /etc/sysconfig/docker.

# CentOS6  
# Weil Ubuntu den Selinux-Mechanismus standardmäßig aktiviert OPTIONS=--graph="/data/docker" --selinux-enabled -H fd://  
# CentOS7  
# Ändern Sie die Datei docker.service und verwenden Sie den Parameter -g, um den Speicherort anzugeben $ vi /usr/lib/systemd/system/docker.service  
ExecStart=/usr/bin/dockerd --graph /neuer-Pfad/docker 
#Ubuntu  
# Weil Ubuntu den Selinux-Mechanismus standardmäßig nicht aktiviert OPTIONS=--graph="/data/docker" -H fd://

Nach dem Neustart wird der Docker-Pfad auf /data/docker geändert.

# Laden Sie die Konfigurationsdatei neu. $ sudo systemctl daemon-reload  
# Starten Sie den Docker-Dienst neu $ sudo systemctl restart docker.service

Wenn die Docker-Version 1.12 oder höher ist, können Sie eine neue daemon.json-Datei ändern oder erstellen. Die Änderung wird sofort wirksam, ohne dass der Docker-Dienst neu gestartet werden muss.

# Ändern Sie die Konfigurationsdatei $ vim /etc/docker/daemon.json  
{  
    "Registrierungsspiegel":  
        ["http://7e61f7f9.m.daocloud.io"],  
    "graph": "/neuer-Pfad/Docker"  
}

3. Erstellen Sie eine Konfigurationsdatei unter System

Erstellen Sie eine Drop-In-Datei docker.conf im Verzeichnis /etc/systemd/system/docker.service.d. Standardmäßig existiert der Ordner docker.service.d nicht und muss zuerst erstellt werden. Der Grund für die Erstellung einer Drop-In-Datei besteht darin, dass der Docker-Dienst bestimmte in der Datei docker.conf genannte Parameter verwenden und die vom Standarddienst in der Datei /lib/systemd/system/docker.service verwendeten Parameter überschreiben soll.

# Definieren Sie einen neuen Speicherort $ sudo vi /etc/systemd/system/docker.service.d/docker.conf  
[Service]  
ExecStart=/usr/bin/dockerd --graph="/data/docker" --storage-driver=devicemapper

Speichern und beenden Sie den Vim-Editor. /data/docker ist der neue Speicherort und devicemapper ist der aktuell von Docker verwendete Speichertreiber. Sollte Ihr Speichertreiber ein anderer sein, geben Sie hier den Wert ein, den Sie im ersten Schritt geprüft und notiert haben. Sie können jetzt den Service-Daemon neu laden und den Docker-Dienst starten, wodurch der Speicherort der neuen Images und Container geändert wird. Um zu bestätigen, dass alles gut gegangen ist, führen Sie den Befehl „Docker Info“ aus, um das Docker-Stammverzeichnis zu überprüfen.

# Laden Sie die Konfigurationsdatei neu. $ sudo systemctl daemon-reload  
# Starten Sie den Docker-Dienst neu $ sudo systemctl start docker

Dies ist das Ende dieses Artikels zum Ändern des Standardspeicherorts von Docker-Images. Weitere Informationen zum Standardspeicherort von Docker-Images finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Docker Ändern des Docker-Speicherorts Ändern der Größenbeschränkung für Container-Images
  • So ändern Sie den Speicherort von Docker-Standardimages und -Containern
  • So zeigen Sie Bildinformationen in Docker an

<<:  Detaillierte Erläuterung der Hinweise zum Flex- und Positionskompatibilitäts-Mining

>>:  Grafische Erklärung des zugrunde liegenden Prinzips der JavaScript-Bereichskette

Artikel empfehlen

Tutorial zur Installation einer MySQL-ZIP-Datei

In diesem Artikel wird die spezifische Methode zu...

Kurze Analyse der Einführung und grundlegenden Verwendung von Promise

Promise ist eine neue Lösung für die asynchrone P...

Schreiben Sie einen einfachen Rechner mit JavaScript

Die Wirkung ist wie folgt:Referenzprogramm: <!...

Beispiel für die JavaScript-Funktion „CollectGarbage“

Sehen wir uns zunächst ein Beispiel für die Speic...

Eine kleine Frage zur Ausführungsreihenfolge von SQL in MySQL

Ich bin heute bei der Arbeit auf ein SQL-Problem ...

element-ui Markieren Sie die Koordinatenpunkte nach dem Hochladen des Bildes

Was ist Element-UI element-ui ist eine auf Vue.js...

So ändern Sie Flash-SWF-Dateien in Webseiten

Ich denke, dies ist ein Problem, auf das viele Leu...

Ein Artikel, der Ihnen zeigt, wie Sie Vue-Komponenten erstellen und verwenden

Inhaltsverzeichnis 1. Was ist eine Komponente? 2....

Detaillierte Erläuterung der vier Transaktionsisolationsebenen in MySQL

Die Testumgebung dieses Experiments: Windows 10+c...

js Array-Einträge () Holen Sie sich die Iterationsmethode

Inhaltsverzeichnis 1. Detaillierte Syntax der Met...