Windows Git Bash执行docker run -it ubuntu ls /报错无此文件或目录怎么办
报错原因
该报错是Windows平台Git Bash终端的特有问题:Git Bash默认开启了POSIX路径自动转换机制,当你在Git Bash中输入根路径/时,它会自动将/转换为Git的本地安装目录C:/Program Files/Git/后再传递给Docker进程。最终Ubuntu容器内部收到的实际执行命令是ls C:/Program Files/Git/,而容器内不存在该Windows路径,因此抛出找不到文件或目录的错误。
可行解决方案
- 方案1:对根路径做转义处理,将原命令修改为
docker run -it ubuntu ls //,额外增加的斜杠会阻止Git Bash的路径自动转换逻辑,容器最终收到的就是正确的ls /命令 - 方案2:切换到PowerShell或Windows原生CMD终端执行命令,这两个终端没有POSIX路径自动转换规则,直接运行原命令
docker run -it ubuntu ls /即可正常执行 - 方案3:先进入容器的交互式Shell再执行查询操作,运行
docker run -it ubuntu bash进入容器终端后,再输入ls /即可,完全规避宿主机终端的路径转换影响
内容的提问来源于stack exchange,提问作者Dave L
相关产品推荐
相关产品推荐

