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

为何Datacenter-Core-1709-with-Containers-smalldisk中服务已停但dockerd仍运行

解决Azure VMSS(Datacenter-Core-1709-with-Containers-smalldisk镜像)Docker EE预览版升级异常问题

我碰到过不少类似的Azure VMSS上Docker升级的场景,结合你的描述,这个问题的核心是镜像自带的dockerd进程是通过非服务方式启动的,和注册的Windows服务冲突,导致升级受阻。下面是一步步的解决方法:

一、处理当前异常状态,完成升级

  1. 首先终止正在运行的dockerd进程(因为它不是通过服务启动的,所以Stop-Service命令无效):
    Stop-Process -Name dockerd -Force
    
  2. 确认dockerd服务处于停止状态:
    Get-Service dockerd
    
  3. 执行Docker EE预览版的升级操作,示例命令如下(请替换<预览版版本号>为实际需要的版本):
    # 安装Docker提供器模块
    Install-Module DockerProvider -Force
    # 安装指定预览版的Docker EE
    Install-Package Docker -ProviderName DockerProvider -RequiredVersion <预览版版本号> -Force
    
  4. 配置并启动dockerd服务:
    # 设置服务为开机自动启动
    Set-Service dockerd -StartupType Automatic
    # 启动dockerd服务
    Start-Service dockerd
    

二、解决重启后可能的重复异常

你提到重启后可能出现问题,这是因为这个特定的Azure镜像在系统初始化时,大概率通过启动脚本、任务计划或者注册表启动项手动启动了dockerd,而非依赖Windows服务。要彻底解决这个问题:

  • 检查启动文件夹:查看C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp目录下是否有自动启动dockerd的脚本,如有直接删除
  • 检查任务计划:打开任务计划程序,查找是否有触发dockerd启动的任务,禁用或删除该任务
  • 检查注册表:打开注册表编辑器,定位到HKLM\Software\Microsoft\Windows\CurrentVersion\Run路径,查看是否有dockerd相关的启动项,删除对应条目

问题根源说明

这个Datacenter-Core-1709-with-Containers-smalldisk镜像在部署时,为了快速初始化容器环境,可能通过脚本直接启动了dockerd进程,同时又注册了Windows服务但未启动它。这就导致了Get-Service显示服务未运行,但Get-Process能看到dockerd进程的矛盾状态——升级时因为进程占用无法替换文件,必须先终止这个手动启动的进程才能完成升级。

内容的提问来源于stack exchange,提问作者Poul K. Sørensen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:57:29