WSL2 启动即崩溃?调整超时参数解决 Docker 阻塞问题

前面一片文章给出了因WSL 2.7+ 空闲自动关闭/内存回收导致 Docker 中断的解决方案:

https://blog.csdn.net/boxuming/article/details/165619884?spm=1001.2014.3001.5501

本次又遇到了新的问题:

问题现象

WSL2 Ubuntu 24.04 实例开机后数秒内自动关闭,无法进入 Shell。查看日志发现两个关键错误形成闭环:

text 复制代码
[16.628768] WSL ERROR: WaitForBootProcess: /sbin/init failed to start within 10000ms
[35.321104] WSL ERROR: InitTerminateInstanceInternal: systemctl poweroff did not terminate the instance in 10000 ms, calling reboot(RB_POWER_OFF)
根因分析
  • 启动阻塞 :日志显示 Job docker.service/start running (14s / no limit),Docker 与 containerd 初始化耗时超过 10 秒,阻塞了 systemd 的就绪信号。
  • 关机卡死 :触发强制关机后,容器停止流程再次挂起(Job docker.service/stop running (9s / 1min 30s)),导致关机也超时,最终被内核级强杀。
  • 触发背景:此前将配置从 12C/8G 调整为 8C/6G,资源回调使 Docker 冷启动时间略微增加,刚好越过了 WSL2 默认的 10 秒硬超时阈值,让原本隐藏的超时问题显性化。
解决方案

以下两种方法任选其一即可,效果完全等价:

方法一:通过 Dashboard UI 调整(推荐)

在 WSL Dashboard 界面中,将 初始自动代理超时 从默认的 1000ms 调整为 30000ms。

方法二:通过 .wslconfig 配置文件调整

编辑 Windows 用户目录下的 %UserProfile%\.wslconfig 文件,添加或修改以下配置:

ini 复制代码
[wsl2]
initialAutoProxyTimeout=30000

⚠️ 无论使用哪种方法,修改后均需在 PowerShell 中执行 wsl --shutdown 彻底关闭 WSL,再重新启动方可生效。

验证效果

重启 WSL 后能够正常进入 Shell,不再出现启动即崩溃的现象,Docker 服务也可正常拉起。

经验总结
  • WSL2 默认的 10 秒超时是开发环境的隐形杀手,搭配 Docker 使用时极易触发,建议主动将超时调整为 30 秒。
  • 适度降低资源配置有助于暴露架构瓶颈,但需配合超时参数调整才能保证稳定运行。
  • Dashboard UI 与 .wslconfig 配置效果一致,可根据个人习惯选择;UI 方式更直观不易出错,配置文件方式更适合批量部署或版本管理。
相关推荐
无足鸟ICT11 分钟前
【RHCA+】影响Linux系统性能的因素
linux·运维·服务器
沫璃染墨19 分钟前
从零入门计算机网络系列(十):HTTP协议进阶——从资源路径解析到状态码与请求头详解
linux·运维·服务器·网络·c++·http
oioihoii20 分钟前
Windows部署MySpeed自建测速服务:Docker运行后直接测速,再配置固定公网地址远程查看
运维·docker·容器
小则又沐风a23 分钟前
深入了解五种IO模型与非阻塞IO
linux
Sayai24 分钟前
Ubuntu 开发环境搭建避坑(一):网卡 EEE 致 60% 周期性丢包,Realtek RTL8125 网络黑洞排查与修复
linux·运维·网络·ubuntu·性能优化
墨染天姬28 分钟前
【linux 网络1】数据怎么进网卡到内核?
linux·运维·网络
崇子嵘42 分钟前
上云方案硬件部分分析
linux
小嘉丶学长1 小时前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python
zuiyuewentian1 小时前
借助 AI 在 Win11 上搭建 Rocky Linux:用 Visual Studio 直接调试 Linux 服务
linux·运维·visual studio
牢姐与蒯1 小时前
WSL2 迁移教程:把Ubuntu+WSL2从C盘挪到别的盘
linux·运维·服务器·网络·ubuntu·1024程序员节