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

执行docker run mcr.microsoft.com/windows/servercore:1809 echo hello报错原因排查

Windows Server Core容器执行echo命令报错的问题分析与解决

问题场景

执行命令:

docker run mcr.microsoft.com/windows/servercore:1809 echo hello

出现以下错误:

docker: Error response from daemon: container b4e3e78ec07637c061407e28a24065d723ae20e1ef325c7c71fd3e40e06cdf58 encountered an error during hcsshim::System::CreateProcess: failure in a Windows system call: The system cannot find the file specified. (0x2)
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail:  Provider: 00000000-0000-0000-0000-000000000000]
[Event Detail: onecore\vm\compute\management\orchestration\vmhostedcontainer\processmanagement.cpp(173)\vmcomputeagent.exe!00007FF644139FAB: (caller: 00007FF6440EE19A) Exception(2) tid(394) 80070002 The system cannot find the file specified.
    CallContext:[\Bridge_ProcessMessage\VmHostedContainer_ExecuteProcess]
 Provider: 00000000-0000-0000-0000-000000000000].

添加cmd后命令变为docker run mcr.microsoft.com/windows/servercore:1809 cmd echo hello,不再报错,但仅显示C:\,看不到hello输出。

问题原因

  • 错误0x2的原因:Windows系统中echo是cmd.exe的内置命令,并非独立的可执行文件(不存在echo.exe)。Docker执行命令时会默认寻找可执行文件,找不到就抛出“系统找不到指定文件”的错误。
  • 添加cmd后无输出的原因:直接用cmd启动容器时,默认进入交互模式,不会执行后续的echo hello就停在命令提示符C:\,所以看不到输出结果。

解决方法

需要给cmd加上/c参数,让它执行指定命令后立即退出,同时返回命令输出。正确的命令如下:

docker run mcr.microsoft.com/windows/servercore:1809 cmd /c echo hello

执行该命令后,容器会正常输出hello并退出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 23:45:43