Montowanie katalogu z hosta w boot2docker dla Windows

11

Używam dokera 1.6 i boot2dockerna Windows 8.1. Kiedy używam skrótu Boot2Docker Start, zabiera mnie do cygwin bash monitu, gdzie mogę natywnie uruchamiać polecenia dokera.

Mam problem z zamontowaniem katalogu z folderu użytkowników. Próbowałem:

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

Dostaję błąd:

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

Otrzymuję te same wyniki, gdy nazywam to w następujący sposób:

$ 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

Próbowałem też:

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

I dostałem błąd:

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

Wydaje się, że Cygwin bash zastępuje /się \a następnie doker analizuje argument przekazany do -vi nie można zaakceptować.

Paul Oliver
źródło
Podczas instalacji boot2docker polecenie „ls / c / Users” wyświetla mój folder Windows 8.1 C: \ Users. Czy potrzebujesz zamontować inne lokalizacje?
Wilson Gibbins,
Z pewnością widzę /c/Usersz Linux-a boot2docker VM (hosta). Ale muszę poliver / Bitcoin-Abe pojemnik zamontować folder ze specyficzną /c/Usersw /datadirmomencie montażu na pojemniku.
Paul Oliver,
Wydaje mi się, że mam ten sam problem z niemożnością zamontowania folderu hosta. $ 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
Marco
Czy znalazłeś rozwiązanie swojego problemu?
Marco
Przepraszam Marco, nie ma jeszcze rozwiązania. :(
Paul Oliver

Odpowiedzi:

12

Jeśli chcesz zamontować $APPDATAna komputerze-hoście z systemem Windows /datadirw kontenerze dokowanym, zamiast poniższego polecenia:

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

Możesz wydać:

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

//c/Users/PATH_TO_DIR jest tutaj kluczem do katalogu Windows

Twój $APPDATAkatalog MUSI znajdować się w /c/Users/Your_User_Namekatalogu i nie może znajdować się w innych miejscach. (np. D:/$APPDATAna partycji D.)

Xianlin
źródło
6

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

Jeśli używasz git bash w systemie Windows, msysgit konwertuje ścieżki takie jak / c / users na c: \ users (nie jest to coś, czego chcesz, ponieważ ścieżka wewnątrz maszyny wirtualnej boot2docker to / c / Users)

W cmd.exe / powershell nie powinieneś mieć tego problemu.

Lee Yeh
źródło