docker工具 – Windows的卷格式

我正在尝试使用我们在工作中使用的shell脚本来设置我们的开发环境,并通过Git Bash重新将其用于我的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:来自守护程序的错误响应:无效的绑定挂载规范“/ C / Users / username / var / docker / environments / development / scripts / var / log / apache2 ; C:\ Program Files \ Git \ var \ log \ apache2“:无效的卷规范:'/ C / Users / username / var / docker / environments / development / scripts / var / log / apache2; C:\ Program Files \ Git \ var \ log \ apache2“:types为”bind“的无效安assembly置:无效的安装path:\ Program Files \ Git \ var \ log \ apache2安装path必须是绝对path。 请参阅“C:\ Program Files \ Docker \ Docker \ Resources \ bin \ docker.exe运行 – 帮助”。

我做了一堆Google和文档阅读,但我有点被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:\用户\用户名\ var \ www = / var / www

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

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

这是正确的格式。

 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 

应该保持几分钟的时间。

如果你想使path相对,你可以使用pwd和variables。 例如:

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