Docker Volume的--mount命令失效,报路径非绝对路径问题求助
MongoDB Docker Volume使用--mount命令报错问题
我想要创建一个容器删除后仍能使用的MongoDB Docker Volume。
使用-v参数的命令可以正常工作:
docker run -d --name mongo-local -p 27017:27017 -v mongo-local:/data/db mongo
但改用--mount参数的命令时:
docker run -d --name mongo-local -p 27017:27017 --mount source=mongo-local,target=/data/db mongo
出现如下错误:
Error response from daemon: invalid mount config for type "volume": invalid mount path: 'C:/Program Files/Git/data/db' mount path must be absolute. See 'docker run --help'.
我已提前创建好名为mongo-local的Volume,这并非问题所在。为何会出现此错误?
补充说明:
尝试了@BMitch的解决方案,但仍出现相同错误。

参考资料:Docker官方文档中关于使用Volume启动容器的内容
问题原因
这是因为你在Git Bash环境下执行命令,Git Bash会自动把Linux风格的路径(比如/data/db)转换为Windows路径,最终变成C:/Program Files/Git/data/db,而Docker无法识别这个错误的路径格式,因此抛出“挂载路径必须是绝对路径”的错误。
解决办法
推荐三种可行方案:
- 给--mount参数加双引号,避免Git Bash解析路径:
docker run -d --name mongo-local -p 27017:27017 "--mount source=mongo-local,target=/data/db" mongo
- 在目标路径前加双斜杠,告诉Git Bash不要转换该路径:
docker run -d --name mongo-local -p 27017:27017 --mount source=mongo-local,target=//data/db mongo
- 换用Windows原生终端执行命令,比如CMD或者PowerShell,这些环境不会对Linux风格路径做自动转换,直接执行原命令即可正常运行。
内容的提问来源于stack exchange,提问作者Sandeep M
相关产品推荐
相关产品推荐

