我正在尝试使用我们在工作中使用的 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
Run Code Online (Sandbox Code Playgroud)
当我按原样运行时,它返回以下错误消息:
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':类型“bind”的挂载配置无效:挂载路径无效:'\Program Files\Git\var\log\apache2' 挂载路径必须是绝对的。请参阅“C:\Program Files\Docker\Docker\Resources\bin\docker.exe run --help”。
我做了一堆谷歌搜索和文档阅读,但我对 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
Run Code Online (Sandbox Code Playgroud)
它仍然会出现类似的错误消息。如果我删除冒号:/var/www 它会出现,但它似乎没有正确映射这些目录,那就是它不知道 C:\users\username\var\www = /var/www
我知道我在这里遗漏了一些非常愚蠢的东西,但是当我查看文档时,我只是眼花缭乱。任何帮助将不胜感激。