You need to enable JavaScript to run this app. Windows Server上Docker运行不稳定:闲置容器10-20分钟自动终止咨询
优惠活动
大模型
产品
解决方案
定价
更多

Windows Server上Docker运行不稳定:闲置容器10-20分钟自动终止咨询

Windows Server 环境下 Docker 容器无操作自动终止的常见原因与解决方法

首先明确:该场景并非Docker产品的预期表现,大量Windows Server 2016/2019的Docker部署用户都遇到过完全一致的现象,Windows 10上的Docker Desktop因为系统层面的策略差异,不会触发这类问题。

核心触发原因

  • 系统交互式会话空闲回收策略触发
    Windows Server默认配置了服务器级的会话闲置超时规则,会对长时间无输入的交互式终端会话做强制回收。你使用docker run -it启动的容器,其1号主进程是绑定交互终端的cmd.exe,一旦匹配系统的闲置超时判定规则,作为容器根进程的cmd.exe会被系统强制终止,容器随即退出。通常Windows Server默认的空闲超时阈值刚好在10-20分钟区间,和你观察到的现象完全匹配。
  • Docker版本兼容缺陷
    你当前锁定安装的Docker 19.03初始版本,和Windows Server 2019 17763内核的容器隔离模式存在已知bug,部分场景下会在容器进入空闲状态10-15分钟后,因为内存隔离池的异常回收误杀掉容器主进程,这个问题在19.03的后续补丁版本以及20.10 LTS版本中已完成修复。
  • 基础镜像的进程设计特性
    nanoserver、servercore这类官方基础镜像没有内置的常驻守护进程,容器的生命周期完全依赖启动时挂载的交互进程,一旦交互进程被外部因素终止,没有兜底逻辑维持容器运行。

可落地的解决步骤

  • 调整系统会话超时配置,绕开闲置回收规则
    在管理员权限的PowerShell中执行如下注册表修改命令,将交互式会话的最大闲置超时值设置为0(代表无超时限制):
    Set-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\Windows NT\Terminal Services" -Name MaxIdleTime -Value 0
    命令执行完成后重启服务器即可生效。
  • 升级适配系统版本的稳定Docker版本
    替换原有的锁版本安装命令,升级到和Windows Server 2019匹配的Docker 20.10 LTS稳定版本:
    Install-Package -Name docker -ProviderName DockerMsftProvider -Force -RequiredVersion 20.10
    该版本修复了大量Windows容器场景下的进程异常终止类问题。
  • 优化容器启动方式,避免依赖交互终端维持运行
    如果需要长期后台运行容器,不要使用挂起的交互前台模式启动,改用带常驻进程的后台启动方式,搭配自动重启策略:
    docker run -d --restart=always mcr.microsoft.com/windows/nanoserver:1809 powershell -Command "while ($true) { Start-Sleep 3600 }"
    这种启动方式的容器主进程是独立的常驻循环进程,不会因为终端会话闲置被系统回收,即使遇到异常终止也会被Docker自动拉起。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 13:06:03