Einbinden eines Verzeichnisses vom Host in boot2docker für Windows

Einbinden eines Verzeichnisses vom Host in boot2docker für Windows

Ich verwende Docker 1.6 boot2dockerauf einer Windows 8.1-Box. Wenn ich die Startverknüpfung Boot2Docker verwende, gelange ich zu einer Cygwin-Bash-Eingabeaufforderung, wo ich Docker-Befehle nativ ausführen kann.

Ich habe Probleme, ein Verzeichnis aus meinem Benutzerordner zu mounten. Ich habe Folgendes versucht:

$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Ich erhalte die Fehlermeldung:

invalid value "C:\\Users\\someone\\AppData\\Roaming/Bitcoin:/datadir"
for flag -v: \Users\someone\AppData\Roaming/Bitcoin:/datadir 
is not an absolute path 
See 'c:\Program Files\Boot2DockeForWindows\docker.exe run --help'.

Ich erhalte die gleichen Ergebnisse, wenn ich es folgendermaßen aufrufe:

$ docker run -d --name abe -v "$APPDATA/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v "/c/users/someone/AppData/Roaming/Bitcoin":/datadir poliver/bitcoin-abe
$ docker run -d --name abe -v ~/AppData/Roaming/Bitcoin:/datadir poliver/bitcoin-abe

Ich habe auch versucht:

$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Und ich habe den Fehler bekommen:

FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.

Es scheint, als würde Cygwin Bash /durch ersetzen \und dann analysiert Docker das an übergebene Argument -vund kann es nicht akzeptieren.

Antwort1

$APPDATAWenn Sie den Docker-Container auf Ihrem Windows-Hostcomputer mounten möchten /datadir, verwenden Sie anstelle des folgenden Befehls:

docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

Sie können Folgendes ausstellen:

docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe

//c/Users/PATH_TO_DIR ist hier der Schlüssel für das Windows-Verzeichnis

Ihr $APPDATAVerzeichnisMUSSbefinden sich im /c/Users/Your_User_NameVerzeichnis und eskann nichtan anderen Orten liegen. (z. B. D:/$APPDATAauf der D-Partition.)

Antwort2

sehen:https://github.com/docker/docker/issues/12590

Wenn Sie Git Bash unter Windows verwenden, konvertiert msysgit Pfade wie /c/users in c:\users (was nicht erwünscht ist, da der Pfad in der boot2docker-VM /c/Users lautet).

Bei cmd.exe/Powershell sollte dieses Problem nicht auftreten.

verwandte Informationen