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

Dockerfile中无法运行PowerShell脚本的问题求助

解决Windows容器中Dockerfile运行PowerShell脚本的问题

核心问题原因

报错The container operating system does not match the host operating system的本质是你Dockerfile里用的基础镜像OS版本和主机Windows Server 2022 (21H2)不兼容。Windows容器要求基础镜像的系统版本必须和主机严格匹配,否则连PowerShell这类系统级命令都无法正常执行。

具体解决步骤

  1. 锁定匹配版本的基础镜像
    必须使用和主机同版本的Windows Server Core/Windows基础镜像,你的主机是2022 Datacenter,对应镜像标签为ltsc2022,示例:

    FROM mcr.microsoft.com/windows/servercore:ltsc2022
    

    绝对不能用ltsc2019、nanoserver:1809这类和主机版本不匹配的镜像。

  2. 正确编写PowerShell执行命令

    • 执行单行PowerShell命令:
      RUN powershell -Command "你的具体命令内容"
      
    • 执行本地脚本(需先将脚本复制到容器内):
      # 把本地脚本复制到容器指定路径
      COPY .\你的脚本文件.ps1 C:\temp\
      # 绕过执行策略运行脚本
      RUN powershell -ExecutionPolicy Bypass -File C:\temp\你的脚本文件.ps1
      

    注意必须加上-ExecutionPolicy Bypass,避免Windows默认的脚本执行策略阻止脚本运行。

  3. 确认Docker容器模式
    再次验证Docker Desktop已切换到Windows容器模式:打开Docker Desktop设置,在"常规"选项卡检查是否启用Windows容器;也可以用命令行验证:

    docker info | findstr "Operating System"
    

    输出应包含Windows Server 2022 Datacenter Version 21H2相关内容。

  4. 手动拉取对应版本镜像
    手动拉取匹配的基础镜像,避免Docker自动拉取错误版本:

    docker pull mcr.microsoft.com/windows/servercore:ltsc2022
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:42:21