Монтирование каталога с хоста в boot2docker для Windows

Монтирование каталога с хоста в boot2docker для Windows

Я использую 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 такой проблемы быть не должно.

Связанный контент