win版本dockerdesktop,engine stopped如何解决?
发布于 作者:苏南大叔 来源:程序如此灵动~

docker engine stopped
,到底是什么?为啥每次安装docker desktop
的windows
最新版,都会碰到这个错误提示!而且怎么卸载重装都不行,真是离了大谱了。
苏南大叔的“程序如此灵动”博客,记录苏南大叔的代码编程经验总结。测试环境:win10
,wsl@2
,docker@20.18.0
,docker desktop@4.40.0
。本文的结论:最新版的docker desktop
也不是根本没有办法使用,只是需要先清除一下一些残余数据。
前文回顾
先看一下以前的文章:
这篇文章里面,苏南大叔说推荐使用docker desktop@4.1.1
,因为能正常安装使用。而最新版本的docker desktop
,总是会报错“docker engine stopped”。
docker desktop 4.1.1【老版】
后续的使用过程中,苏南大叔发现:docker desktop 4.1.1
版下,在执行docker compose up -d
时,遇到dify/docker
的.env
文件的时候,会遇到.env
文件解析失败的问题。而且dify
官方坚持不修改的前提下,显然这是个docker desktop
版本导致的不兼容问题。所以,需要尝试升级docker desktop
的版本号。
docker desktop 4.40.0【新版】
安装最新版docker desktop 4.40.0
,依然是docker engine stopped
。为了解决这个问题,请依次排查,然后重启系统。
删除旧配置文件
在下面的路径下,保留着上一个版本的配置文件,特别是daemon.json
配置,变化比较大。由于卸载动作并不会删除它,所以排除方案就是需要确认没有老版本配置的影响。
C:\Users\<user>\.docker
C:\Users\<user>\AppData\Roaming\Docker\
C:\Users\<user>\AppData\Roaming\Docker Desktop\
安装选项
安装的时候,两个选项变成了三个选项。中间的选项“allow windows containers to be used with this installation”默认是没有勾选的。不选择它,因为选择了之后有个警告信息。
安装完成后,需要点击同意按钮。(这个时候,就可能会看到docker engine stopped
提示了。)在setting
中,确认使用wsl2
。
docker engine service【可选】
在“此电脑->管理->服务”路径下,可以看到相关的服务类型是“手动”,修改为“自动”,然后点击开始服务。
后来事实证明:engine stopped
可能和这个服务没有关系。
确保wsl2及相关组件
执行命令:
wsl --update
当然,也可以按照下面的文字,再次确认wsl2
已经被正确安装。
清除wsl2和hyper-v容器
因为windows
版本的docker
,实际上背后是hyper-v
和wsl2
。这个是大家都知道的事情。在托盘图标上面点击右键,有个 TroubleShoot
菜单,里面有两个设置:“Clean / Purge data” 和 “Reset to factory defaults”,【请谨慎】执行它们。数据及配置会丢失!!!
防火墙允许通过
防火墙需要允许“com.docker.backend”通过。
解决问题
重启之后,居然可以使用了!这可是个巨大的进步。
最后,记得勾选开机启动,在设置的通用项目里面。见下图:
这里还有后文,设置开机启动的时候,注意卸载某数字卫士。不解释。
结语
整体上来看,应该不是docker
服务没启动的原因。应该是老数据不兼容的问题。所以,重置一切和老版本数据有关的地方,就可能可以顺利运行了。顺便说一下,对于.env
文件,最新版本的docker compose
能够处理“带空格”的情况。
苏南大叔的更多docker
相关文章,请点击:


