Windows(boot2docker)下运行docker-compose提示Dockerfiles未找到
解决Windows上Docker-Compose找不到Dockerfile的问题
我之前也碰到过类似的跨平台Docker配置坑,结合你的情况,大概率是Windows和类Unix系统的路径格式差异或者Docker Desktop的文件共享设置搞的鬼,下面给你几个排查和解决的方向:
1. 统一Dockerfile的路径格式
类Unix系统习惯用正斜杠/,Windows默认是反斜杠\,虽说Docker-Compose理论上兼容两种,但有时候就是会抽风。你可以试试:
- 把docker-compose.yml里指向Dockerfile的路径统一改成正斜杠,比如:
services: your-service: build: context: ./path/to/context dockerfile: ./subdir/Dockerfile # 用正斜杠写相对路径 - 尽量用相对当前docker-compose.yml所在目录的路径,别用Windows的绝对路径(比如
C:\xxx),Docker对这种路径的识别经常出问题
2. 检查Docker Desktop的文件共享权限
如果你用的是Docker Desktop for Windows,这一步绝对不能忘:
- 打开Docker Desktop设置 → 找到
Resources下的File Sharing - 勾选你的项目所在的磁盘(比如C盘),点击
Apply & Restart重启Docker - 要是Docker没有权限访问你的本地目录,找不到Dockerfile简直是必然的
3. WSL2模式下的路径注意事项
要是你的Docker Desktop用的是WSL2后端:
- 建议尽量在WSL2的终端里运行
docker-compose up,别用Windows自带的CMD/PowerShell。因为WSL2的文件系统和Windows的NTFS是映射关系,直接在Windows终端跑命令,路径解析很容易出错 - 要是你偏好用Windows终端,得注意项目目录的WSL路径,比如Windows的
C:\projects\my-app对应WSL里的/mnt/c/projects/my-app,一定要在正确的路径下执行命令
4. 确认Dockerfile的文件名和位置
- 检查Dockerfile的文件名是不是严格的
Dockerfile——大写D开头,后面全小写,别写成dockerfile或者DockerFile。虽说Windows不区分大小写,但Docker有时候会认死理,跨平台配置最好统一成标准写法 - 确保Dockerfile确实在你docker-compose.yml指定的位置,比如你设置了
context: ./app,那Dockerfile就得在app目录里,或者用dockerfile: ./app/Dockerfile明确指定路径
5. 清除Docker缓存重试
有时候缓存会搞出一些莫名其妙的问题,执行下面的命令试试:
docker-compose build --no-cache docker-compose up
要是还是搞不定,你可以把docker-compose.yml里相关服务的build配置贴出来,我帮你再细瞅~
内容的提问来源于stack exchange,提问作者IceBox




