Docker Toolbox执行脚本报错:bash: ./run: No such file or directory
解决Docker Toolbox中
./run: No such file or directory的问题 结合你是Windows下Docker Toolbox新手的背景,你遇到的问题核心是容器内路径映射和主机路径不匹配,我给你一步步拆解解决方案:
1. 先排查容器内的实际挂载情况
先暂停脚本执行,手动运行这条命令进入容器,确认/e目录下是否存在run脚本:
docker run -v $(pwd):/e -w /e --entrypoint bash --rm -it bi-tbcnn
进入容器后执行:
ls -l /e
如果看不到run文件,说明挂载路径出了问题——这是Docker Toolbox在Windows下的典型坑:
- Docker Toolbox依赖VirtualBox虚拟机,默认只自动共享Windows的
C:\Users目录到虚拟机的/c/Users路径下。 - 如果你的项目不在
C:\Users目录里,虚拟机无法访问主机上的项目目录,挂载自然会失败。
2. 修复路径映射问题
方案A:迁移项目到默认共享目录
最简单的办法是把bi-tbcnn项目移动到C:\Users\你的用户名文件夹下,然后在Docker Toolbox的bash里进入该项目目录(路径格式为/c/Users/你的用户名/bi-tbcnn),再重新执行脚本。
方案B:手动添加VirtualBox共享文件夹
如果不想移动项目,可按以下步骤操作:
- 打开VirtualBox,找到Docker Toolbox创建的默认虚拟机(通常名为
default)。 - 右键选择「设置」→「共享文件夹」,点击添加按钮:
- 文件夹路径:选择你主机上的项目目录(比如
D:\projects\bi-tbcnn) - 文件夹名称:设为
bi-tbcnn(自定义名称,方便记忆即可) - 勾选「自动挂载」和「固定分配」
- 文件夹路径:选择你主机上的项目目录(比如
- 在Docker Toolbox的bash里重启虚拟机:
docker-machine restart default - 修改脚本里的挂载参数,把
-v $(pwd):/e替换为:-v /bi-tbcnn:/e
3. 确保run脚本拥有执行权限
即使挂载正确,如果容器内的run脚本没有执行权限,也会触发错误。你可以在主机的Docker Toolbox bash里执行:
chmod +x run
之后再重新运行脚本。
4. 用绝对路径执行脚本更可靠
把脚本里的-c ./run改成-c /e/run,这样不管容器的工作目录是否正确设置,都能精准找到脚本:
docker run -v $(pwd):/e -w /e --entrypoint bash --rm -it bi-tbcnn -c /e/run
按照上述步骤排查,应该能解决你遇到的问题。
内容的提问来源于stack exchange,提问作者yu hu
相关产品推荐
相关产品推荐

