You need to enable JavaScript to run this app. 在PowerShell中创建DockerFile报不支持from关键字的问题排查
优惠活动
大模型
产品
解决方案
定价
更多

在PowerShell中创建DockerFile报不支持from关键字的问题排查

报错核心原因

该报错与Docker安装、Docker Desktop配置无任何关联,完全是操作场景错位导致:

  • 你将Dockerfile的专属构建指令FROM mcr.microsoft.com/dotnet/aspnet:3.1直接粘贴到PowerShell交互终端中回车执行。
  • PowerShell作为命令行脚本解释器,会把接收到的输入全部按照自身语法规则解析。当它识别到FROM关键字时,会对照当前PowerShell版本的语法校验规则做检查,你当前使用的Windows PowerShell版本不支持该关键字对应的语法逻辑,因此抛出The 'from' keyword is not supported in this version of the language.的错误。
  • 这一报错全程由PowerShell自身抛出,Docker Desktop根本没有机会接收这行输入,自然和Linux容器模式、镜像适配这些设置没有关系。
  • 你参考的官方文档中,FROM属于Dockerfile文件的书写内容,并非可以直接在PowerShell终端执行的命令。

PowerShell中误输入Docker指令触发的语法报错截图

正确操作流程
  • 在目标目录D:\Website\Project\Dockers\App下,创建一个无文件后缀、文件名为严格为Dockerfile的纯文本文件
    • Windows默认隐藏已知文件类型的扩展名,极易误生成Dockerfile.txt这类不符合Docker要求的文件名,创建完成后务必在资源管理器的「查看」标签页勾选「文件扩展名」,确认文件名完全匹配要求
  • 使用任意纯文本编辑器打开新建的Dockerfile,按语法规范逐行写入构建指令,第一行即为FROM mcr.microsoft.com/dotnet/aspnet:3.1,完成书写后保存关闭文件
  • 返回PowerShell终端,执行docker build .类Docker构建命令,此时PowerShell会正常将构建请求转发给Docker Desktop,不会再触发PowerShell自身的语法解析错误。
额外避坑提示
  • 不要图省事在PowerShell中用简单文本重定向命令生成Dockerfile:Windows PowerShell默认导出的文本是带BOM的UTF-16编码,Docker构建引擎无法正确识别这种编码的Dockerfile,后续会触发额外的解析报错
  • 你当前配置的Docker Desktop Linux容器模式,完全适配3.1版ASP.NET官方镜像的运行要求,不需要额外调整配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.06 16:06:03