在Windows的boot2docker中从主机挂载目录


11

我正在boot2dockerWindows 1.6 操作系统上运行docker 1.6 。当我使用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它的参数并且无法接受它。


在我的boot2docker安装上,命令“ ls / c / Users”列出了我的Windows 8.1 C:\ Users文件夹。您是否需要挂载其他位置?
威尔逊·吉本斯

我当然可以/c/Users从boot2docker linux VM(主机)中看到。但是我需要poliver / bitcoin-abe容器才能从容器/c/Users上的/datadir安装点安装特定的文件夹。
Paul Oliver

我似乎也遇到了相同的问题,无法挂载主机文件夹。$ 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)

您有解决问题的方法吗?
马可(Marco)

对不起,马可,还没有解决办法。:(
Paul Oliver

Answers:


12

如果要将$APPDATAWindows主机/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分区上。)


6

参见:https : //github.com/docker/docker/issues/12590

如果您在Windows上使用git bash,则msysgit会将/ c / users之类的路径转换为c:\ users(不是您想要的东西,因为boot2docker VM内的路径为/ c / Users)

在cmd.exe / powershell上,您不应遇到此问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.