Windows环境下Docker无法拉取SQL Server镜像求助
问题描述
在Windows系统运行Docker Desktop(版本4.25.0)执行docker pull mcr.microsoft.com/mssql/server:2022-latest时,出现超时错误:
Error response from daemon: Get "https://mcr.microsoft.com/v2/":
net/http: request canceled while waiting for connection
(Client.Timeout exceeded while awaiting headers)
已知信息:
- Docker组件版本:Engine 24.0.6、Compose v2.23.0-desktop.1、Credential Helper v0.7.0、Kubernetes v1.28.2
- 可正常执行
docker pull nginx和docker run hello-world - 未使用代理/VPN,防火墙和杀毒为Windows默认设置,host文件已清空无效
解决方案
1. 测试MCR地址的网络连通性
打开PowerShell执行命令,验证网络能否正常访问MCR的443端口:
Test-NetConnection mcr.microsoft.com -Port 443
若返回tcp测试成功,说明网络层面连通;若失败,尝试切换网络(如手机热点)排查运营商屏蔽问题。
2. 添加Docker镜像加速地址
MCR在国内访问可能不稳定,配置国内镜像加速:
- 打开Docker Desktop设置,进入
Docker Engine选项卡 - 在配置JSON中添加镜像加速节点,示例:
{ "registry-mirrors": [ "https://mirror.ccs.tencentyun.com", "https://docker.mirrors.ustc.edu.cn" ] }
- 点击
Apply & Restart重启Docker,再尝试拉取镜像。
3. 重置Docker网络配置
- 进入Docker Desktop设置的
Resources->Network页面 - 点击
Reset to factory defaults重置网络 - 重启Docker后重新执行拉取命令。
4. 指定Docker的DNS服务器
替换系统默认DNS,解决解析异常:
- 在
Docker Engine配置中添加DNS设置:
{ "dns": ["8.8.8.8", "1.1.1.1"] }
- 重启Docker后重试拉取。
5. 确认防火墙放行Docker
- 打开Windows Defender防火墙,进入
允许应用通过防火墙 - 找到
Docker Desktop相关条目,确保专用和公用网络均已勾选 - 若无该条目,点击
更改设置->允许其他应用,手动添加Docker主程序(默认路径:C:\Program Files\Docker\Docker\Docker Desktop.exe)
内容的提问来源于stack exchange,提问作者Kywillis
相关产品推荐
相关产品推荐

