必须配置国内镜像加速源并确保Docker Desktop运行在WSL2后端,否则因直连境外registry-1.docker.io导致拉取卡在Pulling fs layer或超时;需登录阿里云获取专属加速地址,配置到daemon.json的registry-mirrors中,并重启生效。

你在Win11上执行docker pull命令后,终端卡在Pulling fs layer、waiting for layers或直接超时断开,不是网速差,而是Docker Desktop默认直连境外registry-1.docker.io,跨洋链路导致延迟高、丢包多、带宽受限——必须配置国内镜像加速源才能让拉取速度回到正常水平。
确认Docker Desktop运行在WSL2后端
这一步不能跳过。Docker Desktop在Win11上若未启用WSL2,镜像加速配置可能不生效。打开PowerShell(管理员),运行:wsl -l -v → 查看列表中是否有已安装的Linux发行版且状态为Running;若无,需先启用WSL2并安装Ubuntu等发行版。
接着打开Docker Desktop → Settings → General → 勾选 【Use the WSL 2 based engine】 → 点击Apply & Restart。重启后,Docker守护进程实际运行在WSL2内部,后续配置才作用于真实引擎。
获取并配置阿里云专属镜像加速地址
阿里云镜像加速器不提供通用地址,必须登录控制台获取个人专属地址,否则会返回403或拉取失败。
方法一:网页端手动获取
① 打开 https://cr.console.aliyun.com → 登录阿里云账号 → 左侧导航栏点击「镜像工具」→「镜像加速器」→ 选择操作系统为「Windows」→ 复制显示的HTTPS地址(形如 https://xxxxx.mirror.aliyuncs.com)。
方法二:命令行快速验证(可选)
在WSL2终端中执行:curl -s "https://api.aliyuncs.com/v1/mirrors" | jq -r '.data[0].url' → 若返回有效URL,说明该账号已开通服务;若报错或为空,需先完成实名认证。
【注意:复制地址时务必包含https://前缀,且末尾不能有多余空格或换行】
修改Docker Engine配置文件
打开Docker Desktop → Settings → Docker Engine → 将右侧JSON内容替换为以下结构(保留原有features等字段,仅追加registry-mirrors):
{ "registry-mirrors": [ "https://xxxxx.mirror.aliyuncs.com", "https://docker.mirrors.ustc.edu.cn", "https://mirror.aliyuncs.com" ], "features": { "buildkit": true }}
其中第一项必须是你从阿里云控制台复制的专属地址;USTC和mirror.aliyuncs.com作为备用源,避免单一源失效导致全链路阻塞。不要添加超过3个源,否则Docker会轮询探测,反而拖慢首次拉取。
修改完成后,点击右下角 【Apply & Restart】 → 等待Docker Desktop完全重启(状态栏图标停止旋转)。
验证加速是否生效
重启完成后,在PowerShell或WSL2终端中执行:docker info | grep "Registry Mirrors" -A 5 → 输出应包含你配置的三个地址。
再执行一次真实拉取测试:docker pull nginx:alpine → 观察输出中是否出现 Using default tag: alpine 后迅速进入 Pulling from library/nginx 阶段,且进度条明显快于之前。若仍卡在 Waiting for download 或提示 Get https://registry-1.docker.io/v2/...,说明配置未加载成功,需检查JSON格式是否合法、是否点击了Apply & Restart、WSL2是否真正运行。


















