docker compose up -d 看起来"卡死",99 % 是 Docker 守护进程根本没起来 或者 镜像还在后台下载 。
按下面顺序 30 秒就能定位:
-
先确认 Docker 服务是否存在并已启动
在 Windows 端 (非 WSL)打开 PowerShell(管理员) :powershellwsl.exe -l -v # 看 WSL 2 状态 Get-Service com.docker.service如果状态是 Stopped ,立即:
powershellStart-Service com.docker.service然后等 10 秒,再进 WSL。
-
看 Docker 守护进程能否响应
在 WSL 里 执行:bashsudo docker version- 如果 Client 有、Server 报
Cannot connect→ 说明 Docker 没跑,回第 1 步。 - 如果两行版本都打印出来 → 守护进程正常,继续下一步。
- 如果 Client 有、Server 报
-
确认是不是在"静默下载"
重新带进度条跑一次:bashcd /data sudo docker compose --verbose up -d或者开另一个终端实时看拉取日志:
bashsudo docker events &第一次拉取 Redis/Kafka/ES/MinIO 几个大镜像会花几分钟,网速慢时看上去像"卡死",实际有流量。
-
如果仍无输出,手动拉一次镜像排网络
bashsudo docker pull redis:7-alpine-
能出现分层下载 → 网络正常,回去再
compose up即可。 -
一直卡住或报
timeout→ 国内网络问题,给 Docker 配加速器:
在 Windows 端%USERPROFILE%\.docker\daemon.json添加
json{ "registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"] }保存后重启 Docker Desktop,再进 WSL 重试。
-
-
极端情况:compose 文件语法错
校验一下:bashsudo docker compose config如果马上报错,按提示修正;无报错就会打印解析后的 YAML,说明文件本身没问题。
快速 checklist(30 秒版)
- Windows 端
Get-Service com.docker.service必须是 Running。 - WSL 里
docker version必须能出 Server 版本。 - 第一次执行
docker compose up用--verbose或docker events看后台拉取。 - 国内网慢就配
registry-mirrors,再手动docker pull测速。
我的步骤:
sudo docker version 始终只能出现client的版本号 但是server端的版本号始终无法出现
dockerdesktop虽然启动了,但是我发现WSL Integration未打开!
root@LUXIN:/data# sudo docker compose --verbose up -d
DEBU[0003] failed to enable Docker Desktop integration: querying server info: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.51/info ": context deadline exceeded
这条日志已经说明白:
WSL 里的 Docker CLI 连不上 Docker Desktop 的守护进程(docker.sock 超时)。
99 % 是因为 Docker Desktop 没跑 或 WSL 集成被关闭。

我的根本原因是docker的WSL集成没打开!!!
