You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker新手求助:Dockerfile第1行解析错误,未知指令#

搞定Dockerfile解析错误:unknown instruction:

嘿,我来帮你排查这个问题!作为Docker新手遇到这个报错太正常了,这个提示说明Docker把你Dockerfile第一行的#当成了无效指令,而不是注释,我给你列几个最常见的原因和修复方法:

1. 先确认Dockerfile的文件名是不是写对了

你提到之前把文件名写成了Dockefile(多打了个e?),正确的文件名必须是Dockerfile(没有后缀,首字母大写,剩下的小写)。Windows系统虽然文件名不区分大小写,但Docker有时候会认死理,要是文件名不对,要么赶紧重命名成标准的Dockerfile,要么构建的时候用docker build -f Dockefile .指定你那个写错的文件名。

2. 检查Dockerfile的编码(Windows用户踩坑重灾区!)

这个错误80%的概率是文件带了BOM头——Windows自带的记事本保存UTF-8文件时,默认会加个看不见的BOM头,Docker读这个文件的时候,会把这个BOM头和#混在一起,误以为是个奇怪的指令。

  • 用记事本打开你的Dockerfile,点「文件」→「另存为」,编码选「UTF-8(无BOM)」,然后覆盖保存;
  • 要是用VS Code的话,看右下角的编码标识,切换成「UTF-8无BOM」格式再保存就行。

3. 看看Dockerfile第一行的格式对不对

如果你的第一行是注释,那#必须是该行的第一个字符,前面不能有空格或者看不见的乱码字符。比如正确的写法是:

# 基于Python基础镜像构建
FROM python:3.9-slim

要是写成 # 注释(前面多了空格),Docker就会把这整行当成指令,自然识别不了。另外,要是第一行不是注释,那必须是FROM这种有效的Docker指令,不能空着或者乱写。

4. 确认构建命令没写错

你得在存放三个文件的根目录下执行构建命令,比如:

docker build -t my-docker-app .

这里的.表示让Docker在当前目录找Dockerfile,别跑到别的目录执行命令了哦。

先按上面的步骤排查,优先检查文件名和编码,这俩是Windows新手最容易踩的坑!

内容的提问来源于stack exchange,提问作者Sharpless512

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:02:18