it-swarm.com.de

Ändern Sie den Standort der Docker-Maschine - Windows

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? 

50
shrivb

Dies hat bei mir unter Windows 7 perfekt funktioniert:

  1. Richten Sie die Umgebungsvariable MACHINE_STORAGE_PATH als Stammverzeichnis des Speicherorts ein, den Sie für Docker-Maschinen/VMs, Cache usw. verwenden möchten.
  2. Installieren Sie die Docker Toolbox
  3. Führen Sie das Docker Quickstart Terminal aus

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.

43
Rajesh J Advani

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"

 https://cdn-enterprise.discourse.org/docker/uploads/default/optimized/2X/6/6193445cf15811ce18317c727af258adb2d16c9d_1_690x447.jpg

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 Umgebungsvariable MACHINE_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. 

25
VonC

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
19
vlado

Verwenden Sie einfach die VirtualBox-Grafikschnittstelle, um die Datei disk.vmdk zu verschieben:

 enter image description here

  1. Kopieren Sie die Datei C:\Users\{myUsername}\.docker\machine\machines\default\disk.vmdk in einen anderen Ordner, sagen Sie F:\docker-image\.
  2. Öffnen Sie VirtualBox, wählen Sie default VM und öffnen Sie Settings.
  3. Storage öffnen, aktuellen disk.vmdk auswählen und freigeben (oder löschen).
  4. Klicken Sie auf Choose Virtual Hard Disk File... und suchen Sie nach kopierter Datei in F:\docker-image\.
  5. Es wird eine Warnung angezeigt: VirtualBox beschwert sich über die alte VM - UID, wechselt dann zum Menü File, wählt Virtual Media Manager... aus und gibt alten disk.vmdk frei
  6. 4. erneut versuchen, fertig!
  7. Wenn dies für Ihre Umgebung erforderlich ist, führen Sie die Verlagerung auch für boot2docker.iso, Snapshot-Ordner und Videoaufzeichnung durch.
12
ron190

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.

11
ProEns08

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:

  1. Docker Toolbox deinstallieren und Maschine neu starten
  2. Administrator-Eingabeaufforderung öffnen (Eingabeaufforderung suchen, Shift gedrückt halten, "Als Administrator ausführen" auswählen)
  3. Löschen von .docker aus% USERPROFILE%: rmdir/S% USERPROFILE% .docker
  4. Erstellen Sie einen Ordner mit dem Namen .docker an anderer Stelle: mkdir a: \. Docker
  5. mklink/J% USERPROFILE% .docker a: \. docker
  6. Schließen Sie die Admin-Eingabeaufforderung
  7. Installieren Sie die Docker Toolbox erneut
  8. Verwenden Sie den Docker Quickstart Terminal-Link, um alles zu booten.
  9. Kitematic kann jetzt auch geöffnet werden (obwohl ich beim ersten Fehler die Option "Virtuelle Box verwenden" wählen musste.
8
paulecoyote

Ich habe ein bisschen Probleme mit einer der oben genannten Lösungen gehabt, aber das hat bei mir funktioniert:

  • definieren Sie die Umgebungsvariable MACHINE_STORAGE_PATH so, dass sie auf den gewünschten Wert zeigt directory/folder.
  • Installieren Sie Docker-Toolbox wie gewohnt, wenn dies für Sie funktioniert, ist es in Ordnung, aber für mich war es noch in .docker Verzeichnis installiert.
  • Um dies zu beheben, habe ich den Standardcomputer, der zusammen mit dem Ordner .docker erstellt wurde, aus dem Verzeichnis Benutzer entfernt und entfernt.
  • Das start.sh-Skript wurde bearbeitet und die Zeile oben eingefügt:

z.B.

export MACHINE_STORAGE_PATH=D:\\Docker
  • Führen Sie die Docker Quickstart Terminal Shortcut aus, die den Standardcomputer im gewünschten Ordner neu erstellt
2
DrGun

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:

  1. docker deinstallieren

  2. öffne den Hyper-V Manager (drücke die WIN Taste und gib dann "Hyper" ein)

  3. Ändern Sie die voreingestellten Speicherorte der virtuellen Festplatte in den Hyper-V Einstellungen (nicht in den VM Einstellungen) und bestätigen Sie

  4. installieren Sie Docker

  5. überprüfen Sie den Speicherort des Disk-Images in den erweiterten Optionen der Docker-Einstellungen

0
lengxuehx

Diese Antworten sind seit der neuesten Version nicht mehr aktuell. Der Ort kann in der Benutzeroberfläche Einstellungen konfiguriert werden.

https://github.com/docker/for-win/issues/333

0
Paul Knopf

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