Debian镜像Dockerfile执行apt指令报错「未知指令」问题咨询
报错原因
- Dockerfile有强制的语法规则:每行开头的第一个单词必须是Docker官方定义的合法指令(例如
FROM、RUN、COPY、CMD等),非预设指令开头的内容会被Docker判定为无效指令,抛出解析错误。你写的第二行直接以apt开头,Docker将其识别为未知指令,因此触发unknown instruction: APT报错。 - 要在镜像构建阶段执行shell命令,必须在命令前加上
RUN指令前缀,该指令的作用就是告知Docker后续内容需要作为shell命令执行。
修正后的Dockerfile参考
你额外需要注意两个点:Debian基础镜像默认使用root用户操作,不需要加sudo;镜像构建属于非交互过程,执行apt install需要加上-y参数自动确认安装,否则流程会卡住。优化后的写法如下:
FROM debian RUN apt update && apt install -y wget && rm -rf /var/lib/apt/lists/*
末尾的清理命令是为了删除软件源缓存,减小最终生成的镜像体积。
内容的提问来源于stack exchange,提问作者user10664542
相关产品推荐
相关产品推荐

