
Ich versuche folgendes auszuführenSkriptwird aber dockerd
auf meiner Workstation nicht erkannt.
Mein Betriebssystem ist Windows 10. Habe gerade die neueste Version von Docker installiert, nämlich 18.09.2
Dies ist mein erstes Mal mit Docker.
Antwort1
Diese Antwort ist eher eine Ergänzung zuDie Antwort von Jean-François Beauchamp:
Die vollständige Dokumentation zu dieser Konfigurationsdatei finden Sie unterDocker-Dokumentation.
Es ist angegeben :
--data-root
ist der Pfad, in dem dauerhafte Daten wie Bilder, Datenträger und Clusterstatus gespeichert werden.
Und
--exec-root
ist der Pfad, in dem der Containerstatus gespeichert ist. Der Standardwert ist /var/run/docker. Geben Sie hier den Pfad für Ihren laufenden Daemon an.
Wenn Sie also sowohl Ihre Container als auch Ihre Bilder (und die anderen Dinge) verschieben möchten, müssen Sie beide Parameter festlegen.
Sie können auch einen einfachen Link erstellen, bei dem Docker erwartet, dass sein Ordner an den gewünschten Ort umgeleitet wird.
Es wird beschriebenHierund führen zum selben Ergebnis. Es sieht zwar "schmutzig" aus, sieht aber am Ende stabiler aus als die erste Lösung.
Arbeiten mit der WSL 2-Engine (für Windows Home und Family Editions)
"D:\\Docker\\data-root"
Wert alsvorgeschlagen von Miguelstürzt Docker ab, da es sich um einen WSL-Ordner handeln muss.
Docker erstellt jedoch eine spezielle WSL-Distribution, die Ihre Docker-Daten enthält.und du kannst es verschieben. Hierzu ist keine Änderung der Dockerd-Parameter erforderlich.
So verschieben Sie die WSL-Distribution von Docker
wsl --export docker-desktop-data docker-desktop-data.tar
wsl --unregister docker-desktop-data
wsl --import docker-desktop-data X:\wslStore\ docker-desktop-data.tar --version 2
Der X:\wslStore
Parameter ist der Pfad, in dem Sie Ihre Distro „mounten“ möchten, etwa so:D:\Docker\data-root
Antwort2
Unter Docker v19.03.8 für Windows habe ich den graph
Parameter zu meiner Konfiguration hinzugefügt und es hat bei mir funktioniert, aber anscheinend ist dieser Parameter veraltet und wir sollten jetzt data-root
stattdessen verwenden. Der Standardwert für data-root
ist c:\programdata\docker
. Beachten Sie, dass in der JSON-Konfigurationsdatei die Backslashes maskiert werden müssen.
Antwort3
Finden Sie einen anderen Weg, es zu tun, basierend aufDasPost.
Bei Unix-Containern kann der Pfad für Images über die Docker Desktop-Oberfläche im Einstellungsformular geändert werden. Wenn Sie jedoch die Windows-Containerfunktion verwenden, wird ein zweiter Dienst installiert, die „Docker Engine“. Um den Image-Ordner für diesen Dienst zu ändern, führen Sie die folgenden Schritte aus:
- Holen Sie sich den Pfad zur Konfigurationsdatei. Gehen Sie zu Verwaltungstools->Dienste. Überprüfen Sie die Docker-Dämon-Befehlszeile für den Dienst „Dock Engine“.
Die Befehlszeile sieht etwa so aus:
"C:\Programme\Docker\Docker\Resources\dockerd.exe" --run-service --service-name docker -G myPc" --config-file C:\ProgramData\DockerDesktop\tmp-d4w\daemon.json
- Bearbeiten Sie die Konfigurationsdatei
daemon.json
und fügen Sie die Eigenschaft data-root hinzu. Der Eigenschaftswert sollte auf den gewünschten Speicherort zeigen. Sollte ungefähr so aussehen. Überprüfen SieDasfür Informationen zur JSON-Struktur.
{
"registry-mirrors": [],
"insecure-registries": [],
"debug": true,
"experimental": false,
"hosts": [
"npipe:////./pipe/docker_engine_windows"
],
"data-root":"D:\\Docker\\data-root"
}
Erteilen Sie dem laufenden Konto bei Bedarf die Berechtigung, auf den Ordner zuzugreifen.
- Starten Sie den Dienst neu. Wenn er nicht startet, prüfen Sie,
eventlog
ob mögliche Fehler vorliegen.
Zuvor konfigurierte Daten in c:\ProgramData\Docker gehen verloren, wenn Sie den Installationsort ändern. Es ist wie eine Neuinstallation an einem neuen Ort. (Bilder, Container usw.). Alle Unterordner werden erneut erstellt.
Um das Minimum an Speicherplatz auf dem Systemlaufwerk zu sparen, führen Sie dies bei einer Neuinstallation durch.
Ich bin mir bei dieser Lösung nicht hundertprozentig sicher, aber bislang funktioniert Docker einwandfrei und die Belegung des Systemlaufwerks ist gering.