如何使用docker-compose将localhost卷挂载到docker容器

我正在使用Windows 7企业版

Docker Client version: Version: 1.12.2 API version: 1.24 Go version: go1.6.3 Git commit: bb80604 Built: Tue Oct 11 17:00:50 2016 OS/Arch: windows/amd64 Docker Server version: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Wed Oct 26 23:26:11 2016 OS/Arch: linux/amd64 docker-compose version: docker-compose version 1.9.0, build 2585387 docker-py version: 1.10.6 CPython version: 2.7.12 OpenSSL version: OpenSSL 1.0.2h 3 May 2016 

我无法弄清楚如何在Windows上使用Docker工具箱时在docker-compose.yml文件中装入卷。

以下是docker-compose.yml文件。

 version: '2' services: myapp: build: context: . args: ADMIN_PASS= welcome1 ports: - "7001:8001" volumes: - "/C/myapp/gradleBuild/myappEar/libs:/myappEar" 

当我运行docker-compose up下面是我得到的错误

 ERROR: for myapp Cannot create container for service myapp: create \C\myapp\gradleBuild\myappEar\libs: "\\C\\myapp\\gradleBuild\\myappEar\\libs" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed ←[31mERROR←[0m: Encountered errors while bringing up the project. 

当我更改卷部分

 volumes: - "/c/myapp/gradleBuild/myappEar/libs:/myappEar" 

它引发同样的错误

当我最后改变卷部分

 volumes: - "C:/myapp/gradleBuild/myappEar/libs:/myappEar" 

它抛出下面的错误

 ERROR: for myapp Cannot create container for service myapp: Invalid bind mount spec "C:\\myapp\\gradleBuild\\myappEar\\libs:/myappEar:rw": Invalid volume specification: 'C:/myapp/gradleBuild/myappEar/libs:/myappEar:rw' ←[31mERROR←[0m: Encountered errors while bringing up the project. 

任何人都可以帮我解决这个问题吗?

提前致谢。

请注意,如果您使用的是docker toolbox (意思是通过VirtualBox VM的/c/users/mylogin ),则默认情况下只有/c/users/mylogin可用。
如果path不包含c:\Users\myLogin则需要声明其他安装位置 。

您只能通过Windows 10上的HyperV虚拟机访问更多的C驱动器(因为您使用的是Windows 7,所以没有这个function)。

在你的docker-compose图片中,你已经安装了这个卷:

卷: – “/ C / myapp / gradleBuild / myappEar / libs:/ myappEar”

在Windows上提到使用下面的格式安装泊坞窗卷:

 c:\<path>:/c:\<container path> 

更多信息可以在这里find