我正在尝试使用我们在工作中使用的 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: Error response from daemon: invalid bind mount spec "/C/Users/username/var/docker/environments/development/scripts/var/log/apache2;C:\\Program Files\\Git\\var\\log\\apache2": invalid volume specification: '/C/Users/username/var/docker/environments/development/scripts/var/log/apache2;C:\Program Files\Git\var\log\apache2': invalid mount config for type "bind": invalid mount path: '\Program Files\Git\var\log\apache2' mount path must be absolute. See '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
它仍然出错并显示类似的错误消息。如果我删除冒号:/var/www,它就会出现,但它似乎没有正确映射这些目录,也就是说它不知道C:\users\username\var\www
= /var/www
我知道我在这里错过了一些非常愚蠢的东西,但是当我查看文档时,我只是茫然。任何帮助将不胜感激。
对于在 Windows 10 上使用 Docker 的人来说,需要额外的/
必须包含在路径中:
docker run -it -v //c/Users/path/on/host:/app/path/in/docker/container command
(注意额外的/
near c
)
如果您正在使用 Git Bash 并使用pwd
然后使用额外的/
还有:
docker run -p 3000:3000 -v /app/node_modules -v /$(pwd):/app 09b10e9fda85`
(notice /
before $(pwd)
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)