2017-08-31 73 views
1

我正在尝试使用我们在工作中使用的shell脚本来设置我们的开发环境,并通过Git Bash重新将其用于我的Windows环境。docker - Windows的卷格式

的容器在shell脚本中长大的方式如下:

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=$PWD/var/www:/var/www \ 
--volume=$PWD/var/log/apache2:/var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

当我运行,不被它返回以下错误信息:

C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe:错误 守护进程的响应:invalid bind mount spec “/ C/Users/username/var/docker/environments/development/scripts/var/log/apache2; C:\ Program Files \ Git \ var \ log \ apache2“:volume specifi正则表达式: '/ C/Users/username/var/docker/environments/development/scripts/var/log/apache2; Files \ Git \ var \ log \ apache2':无效的mount配置“: 无效的安装路径:'\ Program Files \ Git \ var \ log \ apache2'安装路径 必须是绝对路径。参见'C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe run --help'。

我做了一堆googling和文档阅读,但我有点被Docker压垮了,我想我错了。我试图设置容器如下:

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=/c/users/username/var/www:/var/www \ 
--volume=/c/users/username/var/log/apache2:/var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

它仍然错误与一个类似的错误消息。如果我删除冒号:/ var/www,它会出现,但它似乎没有正确映射这些目录,即它不知道C:\ users \ username \ var \ www =/var/www

我知道我在这里错过了一些令人痛苦的东西,但是当我看着文档时,我只是釉过去。任何帮助将不胜感激。一旦我有一个例子,我就会关闭并运行。谢谢。

回答

1

那么,我发布后回答了我自己的问题。

这是正确的格式。

docker run \ 
--detach \ 
--name=server_container \ 
--publish 80:80 \ 
--volume=//c/users/username/var/www://var/www \ 
--volume=//c/users/username/var/log/apache2://var/log/apache2 \ 
--link=mysql_container:mysql_container \ 
--link=redis_container:redis_container \ 
web-server 

本应该一直保持googling几分钟。

1

如果你想使路径相对,你可以使用pwd和变量。例如:

CURRENT_DIR=$(pwd)  
docker run -v /"$CURRENT_DIR"/../../test/:/test alpine ls test