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

11

Я использую Docker 1.6 и boot2dockerWindows 8.1. Когда я использую ярлык запуска Boot2Docker, я перехожу к приглашению 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и не может принять его.

Пол Оливер
источник
В моей установке boot2docker команда "ls / c / Users" выводит мою папку Windows 8.1 C: \ Users. Вам нужно смонтировать другие места?
Уилсон Гиббинс
Я могу конечно видеть /c/Usersот boot2docker linux VM (хост). Но мне нужен контейнер poliver / bitcoin-abe для монтирования определенной папки /c/Usersв /datadirточке монтирования на контейнере.
Пол Оливер
Я также, кажется, испытываю ту же проблему, не в состоянии смонтировать папку хоста. $ docker run -d -v /c/Users/310145787/Desktop/mongo:/data/db mongo invalid value "c:\\Users\\310145787\\Desktop\\mongo;C:\\Program Files (x86)\\Git\\data\\db" for flag -v: \Users\310145787\Desktop\mongo;C:\Program Files (x86)\Git\data\db is not an absolute path
Марко
Вы получили решение своей проблемы?
Марко
Извините, Марко, пока нет решения. :(
Пол Оливер

Ответы:

12

Если вы хотите смонтировать $APPDATAна своем хост-компьютере Windows /datadirв док-контейнере вместо команды ниже:

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.)

Xianlin
источник
6

см .: https://github.com/docker/docker/issues/12590

Если вы используете git bash для windows, msysgit преобразует пути типа / c / users в c: \ users (не то, что вам нужно, потому что путь внутри виртуальной машины boot2docker - / c / Users)

На cmd.exe / powershell у вас не должно быть этой проблемы.

Ли Йе
источник