挂载特定路径卷时Docker容器启动失败,换路径正常的原因排查
问题原因解析
核心原因是本地挂载目录覆盖了容器内存放启动程序的关键路径:
- 容器镜像
290764/git-metrics:git-metrics的启动逻辑依赖于容器内/usr/src/app路径下的git-metrics可执行程序。 - 执行第一条
docker run命令时,本地的/Users/administrator/Documents/enrico-code/code-analysis/git-metrics目录被挂载到容器的/usr/src/app,此时容器内该路径的原有内容会被本地目录完全替换。如果你的本地git-metrics目录中没有git-metrics可执行文件,容器启动时就会出现sh: 1: git-metrics: not found的报错。 - 修改挂载路径为
git-metrics-abc后,要么本地该目录不存在(Docker创建空目录挂载,但容器的启动程序实际存放在其他未被覆盖的路径),要么本地该目录包含了所需的git-metrics可执行文件,因此容器能正常启动。
内容的提问来源于stack exchange,提问作者Picci
相关产品推荐
相关产品推荐

