在 Windows 的 boot2docker 中從主機掛載目錄

在 Windows 的 boot2docker 中從主機掛載目錄

boot2docker我正在 Windows 8.1 機器上執行 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並且無法接受它。

答案1

如果您想將$APPDATAWindows 主機上的 docker 容器掛載到/datadirdocker 容器上,而不是使用下列命令:

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

如果您在 Windows 上使用 git bash,msysgit 會將 /c/users 等路徑轉換為 c:\users (這不是您想要的,因為 boot2docker VM 內的路徑是 /c/Users)

在 cmd.exe/powershell 上,您不應該遇到此問題。

相關內容