Docker Desktop中docker exec --workdir在Git Bash下无法工作的原因咨询
问题原因与解决办法
根因
Git Bash(基于MSYS2)默认会对以斜杠开头的路径进行Windows风格的路径转换。当你执行docker exec --workdir=/tmp ...时,Git Bash会把/tmp转换成类似C:\tmp的Windows本地路径传递给Docker,而Docker需要的是容器内部的Linux绝对路径,因此触发了「Cwd must be an absolute path」的错误。
解决办法
有两种简单的方式可以解决这个问题:
- 用单引号包裹路径参数,阻止Git Bash进行路径转换:
docker exec --workdir='/tmp' 3eef5ce3f69d pwd
- 在命令前添加
MSYS_NO_PATHCONV=1,临时禁用Git Bash的路径转换功能:
MSYS_NO_PATHCONV=1 docker exec --workdir=/tmp 3eef5ce3f69d pwd
内容的提问来源于stack exchange,提问作者Frank Neblung
相关产品推荐
相关产品推荐

