如果你在Windows上用Docker,估计十有八九都碰到过这个蛋疼的问题:右下角的小鲸鱼图标突然变红,提示你 “Docker Desktop Engine Stopped”。

尤其是前一秒还用得好好的,下一秒就崩了,最让人火大。

别急着重装或者上网搜各种复杂的命令。根据我的经验,这问题多半就是你电脑内存不够用了。今天我就聊聊怎么快速排查和搞定它。

第一步:先看内存,别瞎折腾

这是最重要,也最容易被忽略的一步。Windows上的Docker是跑在一个叫WSL2的迷你Linux系统里的,这东西本质上算个虚拟机,得吃内存。你电脑自己的内存要是被占满了,Windows就会把它干掉来保全自己。

怎么看?

  1. 按 Ctrl + Shift + Esc,把任务管理器叫出来。
  2. 点“性能” -> “内存”。
  3. 看那个使用率。

如果你看到这个数字超过了90%,那基本就破案了。

怎么办?

很简单,关掉点东西,给Docker腾地方。最常见的就是:

  • 开了几十个标签页的Chrome浏览器。
  • Android Studio或者IDEA这种大型开发工具。
  • 其他开着的虚拟机。
  • 不用的软件都关了。

把内存降下来后,再试试启动Docker,很可能就好了。

第二步:内存没问题?试试这几招常规操作

如果你的内存还很宽裕,那问题可能出在Docker或它依赖的系统服务上。按下面的顺序来就行。

1. 把Docker彻底关了再重开

  • 注意: 点窗口的“X”是关不掉的。
  • 要去屏幕右下角系统托盘,右键点鲸鱼图标,选 “Quit Docker Desktop”。
  • 等图标没了,再重新打开它。

2. 重启电脑

这招虽然土,但包治百病。重启能解决大部分因为Windows更新或者服务卡住不动的问题。如果上一步没用,直接重启电脑,简单有效。

3. 单独重启WSL

这是个稍微进阶点的办法,可以只重启Docker依赖的Linux环境,比重启整个电脑快。

  • 打开你的PowerShell或者CMD。
  • 敲这个命令然后回车:
    wsl --shutdown
    
  • 它会把后台的Linux关掉。然后再去启动Docker就行了。
第三步:实在不行,只能重置了

如果上面所有方法都试了,你的Docker还是一动不动,那可能是它的配置文件或者数据坏了。这时候只能考虑重置。

操作前一定注意:

警告:下面这步会删掉你本地所有的Docker镜像和容器!有重要东西的话千万先想办法备份!

  1. 打开Docker设置(右上角那个齿轮)。
  2. 找 “Troubleshoot” (故障排除)。
  3. 里面有几个清理选项,比如 “Clean / Purge data” 或者 “Reset to factory defaults”。

不到万不得已别用这招。

总结

总而言之,下次再碰到 “Engine Stopped”,别慌。

先看内存!先看内存!先看内存!

十次里有八次都是内存问题。如果不是,再按顺序试试重启软件、重启电脑、重启WSL。这几招下来,基本都能搞定。

Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐