Я использую docker 1.6 boot2docker
на коробке Windows 8.1. Когда я использую ярлык Boot2Docker Start, он переносит меня в командную строку cygwin bash, где я могу запускать команды docker нативно.
У меня возникли проблемы с монтированием каталога из папки пользователей. Я пробовал:
$ docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
Я получаю ошибку:
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'.
Я получаю те же результаты, когда вызываю его следующими способами:
$ 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
Я также пробовал:
$ docker run -d --name abe -v ~/APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
И у меня возникла ошибка:
FATA[0000] Error response from daemon: cannot bind mount volume: ~\AppData\Bitcoin volume paths must be absolute.
Похоже, что cygwin bash заменяется /
на \
, а затем docker анализирует переданный аргумент -v
и не может его принять.
решение1
Если вы хотите смонтировать $APPDATA
хост-компьютер Windows в /datadir
контейнер Docker, вместо следующей команды:
docker run -d --name abe -v $APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
Вы можете оформить:
docker run -d --name abe -v //c/Users/YOUR_USER_NAME/$APPDATA/Bitcoin:/datadir poliver/bitcoin-abe
//c/Users/PATH_TO_DIR
здесь ключ для каталога Windows
Ваш $APPDATA
каталогДОЛЖЕНнаходиться в /c/Users/Your_User_Name
каталоге и онне могунаходятся в других местах. (например, D:/$APPDATA
в разделе D.)
решение2
видеть:https://github.com/docker/docker/issues/12590
Если вы используете git bash в Windows, msysgit преобразует пути типа /c/users в c:\users (это не то, что вам нужно, поскольку путь внутри виртуальной машины boot2docker — /c/Users)
При использовании cmd.exe/powershell такой проблемы быть не должно.