Standardmäßig wird bei der Installation der Docker Toolbox die freie Virtualisierungssoftware VirtualBox installiert. Um nun im Docker-Container auf Dateien des Windows-Hosts zuzugreifen, wird standardmäßig der Pfad /c/Users im Gastsystem gemountet. Dies ist aber nicht optimal, da man als Windows-Nutzer oft mit Leerzeichen in Pfaden geplagt ist und auch sonst eher z.B. mit einem anderen Arbeitsverzeichnis z.B. c:\dev arbeitet.
Damit dies nun bei jedem Start der Docker-Machine verfügbar ist, müssen ein paar manuelle Handgriffe getätigt werden. Da ich unter Windows primär mit der GitBash arbeite, hier nun die einzelnen Schritte. (Vorraussetzung die Maschine default ist gestoppt)
Prüfung der aktuellen SharedFolder-Einstellungen
VBoxManage showvminfo defaultDies sollte folgende Standardausgabe weit am Ende liefern:
Shared folders: Name: 'c/Users', Host path: '\\?\c:\Users' (machine mapping), writableHinzufügen eines neuen SharedFolder
VBoxManage sharedfolder add default --name /c/dev --hostpath "C:\\dev" --automountStarten der Docker-Machine mit
docker-machine start defaultPer ssh mit der Docker-Machine verbinden
docker-machine ssh defaulteine neue Datei für den “Autostart” erzeugen und editieren
sudo vi /mnt/sda1/var/lib/boot2docker/bootlocal.shDer folgende Dateiinhalt erzeugt den Mount-Pfad und hängt das SharedFolder ein
mkdir -p /c/dev mount -t vboxsf -o defaults,uid=`id -u docker`,gid=`id -g docker` c/dev /c/devNach dem Verlassen der VM zurück in der GitBash verhilft ein schnelles
docker-machine restart defaultzum Neustart der VM.Verbindet man sich nun erneut mit der VM mittels
docker-machine ssh defaultsollte einls /c/devden Inhalt des Host-Verzeichnisses anzeigen.
Zusatzinfo
Da ich nicht nur mit der GitBash sondern auch mit Babun arbeite ist es auch noch interessant, wenn man die Cygwin-typischen Pfade mountet. Das bedeutet man bindet das Verzeichnis c:\dev zusätzlich als /cygdrive/c/dev ein und man kann dann ebenso aus der Cygwin-Shell heraus Pfade einbinden.