docker compose up -d 看起来“卡死”,99 % 是 Docker 守护进程根本没起来 或者 镜像还在后台下载。
按下面顺序 30 秒就能定位:


  1. 先确认 Docker 服务是否存在并已启动
    在 Windows 端(非 WSL)打开 PowerShell(管理员):
    wsl.exe -l -v          # 看 WSL 2 状态
    Get-Service com.docker.service
    
    如果状态是 Stopped,立即:
    Start-Service com.docker.service
    
    然后等 10 秒,再进 WSL。

  1. 看 Docker 守护进程能否响应
    在 WSL 里执行:
    sudo docker version
    
    • 如果 Client 有、Server 报 Cannot connect → 说明 Docker 没跑,回第 1 步。
    • 如果两行版本都打印出来 → 守护进程正常,继续下一步。

  1. 确认是不是在“静默下载”
    重新带进度条跑一次:
    cd /data
    sudo docker compose --verbose up -d
    
    或者开另一个终端实时看拉取日志:
    sudo docker events &
    
    第一次拉取 Redis/Kafka/ES/MinIO 几个大镜像会花几分钟,网速慢时看上去像“卡死”,实际有流量。

  1. 如果仍无输出,手动拉一次镜像排网络
    sudo docker pull redis:7-alpine
    
    • 能出现分层下载 → 网络正常,回去再 compose up 即可。
    • 一直卡住或报 timeout → 国内网络问题,给 Docker 配加速器:
      在 Windows 端
      %USERPROFILE%\.docker\daemon.json
      
      添加
      {
        "registry-mirrors": ["https://hub-mirror.c.163.com","https://mirror.baidubce.com"]
      }
      
      保存后重启 Docker Desktop,再进 WSL 重试。

  1. 极端情况:compose 文件语法错
    校验一下:
    sudo docker compose config
    
    如果马上报错,按提示修正;无报错就会打印解析后的 YAML,说明文件本身没问题。

快速 checklist(30 秒版)

  1. Windows 端 Get-Service com.docker.service 必须是 Running。
  2. WSL 里 docker version 必须能出 Server 版本。
  3. 第一次执行 docker compose up 用 --verbose 或 docker events 看后台拉取。
  4. 国内网慢就配 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集成没打开!!!

在这里插入图片描述

更多推荐