Ich verwende Docker 1.6 boot2docker
auf 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 -v
und kann es nicht akzeptieren.
Antwort1
$APPDATA
Wenn 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 $APPDATA
VerzeichnisMUSSbefinden sich im /c/Users/Your_User_Name
Verzeichnis und eskann nichtan anderen Orten liegen. (z. B. D:/$APPDATA
auf 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.