Ich verwende Docker-Toolbox unter Windows 7, um Docker auszuführen. (Docker-Version 1.9.1)
Wie sich herausstellt, erstellt die Docker-Maschine ihre VM unter C:\Users\Benutzername\.docker\machine\machines\default. Und wenn ich die Bilder festschreibe, wird die Größe von VM an diesem Ort aufgebläht. Der Windows C-Server kann sich den Luxus des Platzes auf Laufwerk C nicht leisten.
Gibt es eine Möglichkeit, den Speicherort der Standardmaschine zu ändern?
Dies hat bei mir unter Windows 7 perfekt funktioniert:
Docker Toolbox erstellt jetzt alle Dateien an dem Speicherort, auf den MACHINE_STORAGE_PATH zeigt.
AKTUALISIEREN:
Beachten Sie, dass das Erstellen eines neuen VM mit dem neuen Speicherpfad nicht ideal ist, da die Docker Quickstart Terminal-Skripts scheinbar nicht mit "Standard" -Daten arbeiten.
Wenn Sie bereits ein VM im Laufwerk C: haben, können Sie am einfachsten zu Oracle VirtualBox gehen und die "Standard" -VM löschen, Docker Toolbox deinstallieren, C:\Users\löschen. <Benutzername> .docker\und befolgen Sie dann die 3 obigen Schritte.
Hinweis: Die Deinstallation und Neuinstallation von Docker Toolbox ist möglicherweise nicht erforderlich. Aber ich habe es nicht ohne getestet.
Update
Um auch Docker-Zertifikate zu verschieben, legen Sie die Variable DOCKER_CERT_PATH
so fest, dass sie auf den Pfad des neuen Laufwerks zeigt. Danke an @Nutle für den Tipp.
Seit 2015 gibt es jetzt (Juni 2017) Hyper-V, mit dem Sie festlegen können, wo Ihre VHDX
-Dateien gespeichert werden sollen :
Siehe Docker für Windows 1.13.0, 2017-01-19 (stable) :
VHDX-Dateien mit Images und nicht auf einem Host eingebundenen Volumes können verschoben werden (mithilfe der Registerkarte "Erweitert" in der Benutzeroberfläche)
Das ändert den %APPDATA%\Docker\settings.json
mit einer Zeile:
"MobyVhdPathOverride":"C:\\Users\\Public\\Documents\\Hyper-V\\New folder\\MobyLinuxVM.vhdx"
Siehe diesen Thread für mehr .
Ursprüngliche Antwort
Derzeit erzwingt Docker-Maschine die Verwendung von %USERPROFILE%
:
Siehe libmachine/mcnutils/utils.go#L17-L25
Wie kommentiert in Ausgabe 499 :
Wie können Benutzer in der Zwischenzeit festlegen, wo die
.docker/machine/*
-Dateien gespeichert werden?sie können dies durch Angabe von
--storage-path
in der Befehlszeile oder über die UmgebungsvariableMACHINE_STORAGE_PATH
angeben.
(Sie können es in PR 1941 implementiert sehen)
Joost Den Boer weist darauf hin in den Kommentaren
Ich habe gerade '
-s <path>
' auf einem Mac ausprobiert und es scheint gut zu funktionieren.
Was möglicherweise nicht offensichtlich ist, ist, dass die Pfadoption vor dem Befehl steht.
Beim Ausführen von "docker-machine -s /Volumes/other/location' create --driver=virtualbox
" wurde am anderen Speicherort ein neues VirtualBox-Image erstellt.
Sie können das .docker
-Verzeichnis auf ein anderes Laufwerk verschieben und dort einen Knotenpunkt erstellen.
Bitte beachten Sie, dass eine normale Verknüpfung nicht funktioniert.
Zum Beispiel:
Verschieben Sie das .docker
-Verzeichnis von C:\Users\username
nach D:\
und Renn:
C:\Users\username>mklink /j .docker D:\.docker
Junction created for .docker <<===>> D:\.docker
Verwenden Sie einfach die VirtualBox-Grafikschnittstelle, um die Datei disk.vmdk
zu verschieben:
C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk
in einen anderen Ordner, sagen Sie F:\docker-image\
.VirtualBox
, wählen Sie default
VM und öffnen Sie Settings
.Storage
öffnen, aktuellen disk.vmdk
auswählen und freigeben (oder löschen).Choose Virtual Hard Disk File...
und suchen Sie nach kopierter Datei in F:\docker-image\
.File
, wählt Virtual Media Manager...
aus und gibt alten disk.vmdk
frei4.
erneut versuchen, fertig!Setzen Sie diese beiden Befehle, wenn Sie das Docker-Schnellstart-Terminal ausführen.
Ich nehme an, Ihr neuer Speicherort ist "D:\Docker" und Ihr neuer Computername ist "Docker1".
export MACHINE_STORAGE_PATH=D:\\docker
docker-machine create --driver=virtualbox docker1
Dadurch sollte ein neuer Computer mit dem angegebenen Namen an Ihrem neuen Speicherort erstellt werden.
Ich konnte die Umgebungsvariablenmethode MACHINE_STORAGE_PATH nicht zum Laufen bringen. Bei der ersten Initialisierung der Maschine klagte es immer wieder über fehlende Zertifikate. Noch unter Windows 7 müssen also Docker-Toolbox verwendet werden.
Ich bin um das Thema herumgekommen durch:
Ich habe ein bisschen Probleme mit einer der oben genannten Lösungen gehabt, aber das hat bei mir funktioniert:
MACHINE_STORAGE_PATH
so, dass sie auf den gewünschten Wert zeigt directory/folder..docker
Verzeichnis installiert..docker
erstellt wurde, aus dem Verzeichnis Benutzer entfernt und entfernt.start.sh
-Skript wurde bearbeitet und die Zeile oben eingefügt:z.B.
export MACHINE_STORAGE_PATH=D:\\Docker
Ich stellte fest, dass viele dieser Antworten keine Daten mehr enthielten, zumindest funktionierten sie in meiner Umgebung nicht: win10 PRO, docker desktop community 2.0.0.3. Schließlich habe ich dieses Problem durch diese Methode gelöst:
docker deinstallieren
öffne den Hyper-V Manager (drücke die WIN Taste und gib dann "Hyper" ein)
Ändern Sie die voreingestellten Speicherorte der virtuellen Festplatte in den Hyper-V Einstellungen (nicht in den VM Einstellungen) und bestätigen Sie
installieren Sie Docker
überprüfen Sie den Speicherort des Disk-Images in den erweiterten Optionen der Docker-Einstellungen
Diese Antworten sind seit der neuesten Version nicht mehr aktuell. Der Ort kann in der Benutzeroberfläche Einstellungen konfiguriert werden.
Erstellen Sie eine Datei mit dem Namen c:\programdata\docker\config\daemon.json mit dem folgenden Inhalt, wobei e:\images der Speicherort ist, an dem Sie alle Ihre Bilder usw. speichern möchten. Starten Sie docker neu.
{"graph": "e:\images"}
Dies wirkte wie ein Zauber
Referenz - https://forums.docker.com/t/where-are-images-stored/9794/11