Windows için boot2docker'da ana bilgisayardan bir dizin bağlama


11

Docker 1.6 ve boot2dockerWindows 8.1 kutusunda çalışıyorum. Boot2Docker Başlangıç ​​kısayolunu kullandığımda, docker komutlarını yerel olarak çalıştırabileceğim bir cygwin bash istemine götürür.

Kullanıcılar klasörümden bir dizini bağlama konusunda sorun yaşıyorum. Denedim:

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

Hatayı alıyorum:

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

Bunu şu şekilde adlandırdığımda aynı sonuçları alıyorum:

$ 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

Ayrıca denedim:

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

Ve hatayı aldım:

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

Bu cygwin bash değiştiriliyor gibi görünüyor /ile \ve daha sonra liman işçisi geçirilen argüman ayrıştırır -vve onu kabul edilemez.


Boot2docker yüklememde "ls / c / Users" komutu Windows 8.1 C: \ Users klasörünü listeler. Başka konumlar monte etmeniz mi gerekiyor?
Wilson Gibbins

Kesinlikle /c/Usersboot2docker linux VM'den (ana bilgisayar) görebilirsiniz. Ama belirli bir klasörü tanıtmak amacıyla POLIVER / Bitcoin-Abe konteyneri ihtiyaç /c/Usersde /datadirkabın üzerine monte noktası.
Paul Oliver

Ayrıca aynı sorunu bir ana bilgisayar klasörü bağlayamıyorum gibi görünüyor. $ 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

Sorununuza bir çözüm buldunuz mu?
Marco

Üzgünüm Marco, henüz çözüm yok. :(
Paul Oliver

Yanıtlar:


12

$APPDATAWindows ana makinenize /datadiraşağıdaki komut yerine docker kapsayıcısına monte etmek istiyorsanız :

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

Şunları yapabilirsiniz:

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

//c/Users/PATH_TO_DIR Windows dizini için anahtar

Sizin $APPDATARehber MUTLAKA ikamet /c/Users/Your_User_Namedizinde ve olamaz diğer yerlerde bulunur. (örneğin D:/$APPDATAD bölümünde.)


6

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

Windows'ta git bash kullanıyorsanız, msysgit / c / users gibi yolları c: \ kullanıcılarına dönüştürür (boot2docker VM'sindeki yol / c / Kullanıcılar olduğu için istediğiniz bir şey değildir)

Cmd.exe / powershell'de bu sorunu yaşamamalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.