Docker--Windows的卷格式 [英] docker --volume format for Windows

查看:21
本文介绍了Docker--Windows的卷格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用我们在工作中使用的外壳脚本来设置我们的开发环境,并重新调整其用途,以便通过Git Bash在我的Windows环境中工作。

在外壳脚本中调出容器的方式如下:

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 FilesDockerDockerResourcesindocker.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 FilesGitvarlogapache2': invalid mount config for type "bind": invalid mount path: 'Program FilesGitvarlogapache2' mount path must be absolute. See 'C:Program FilesDockerDockerResourcesindocker.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:usersusernamevarwww=/var/www

我知道我在这里遗漏了一些非常愚蠢的东西,但当我查看文档时,我只是呆呆地看了看。如有任何帮助,将不胜感激。

推荐答案

对于在Windows10上使用Docker的用户,路径中必须包含额外的/

docker run -it -v //c/Users/path/on/host:/app/path/in/docker/container command

(请注意c附近多了一个/)

如果您正在使用Git Bash并使用pwd,则在那里也使用额外的/

docker run -p 3000:3000 -v /app/node_modules -v /$(pwd):/app 09b10e9fda85`

(通知/之前$(pwd))

这篇关于Docker--Windows的卷格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆