Docker 设置镜像源后仍无法拉取镜像问题排查

#记录工作

Windows系统

在使用 Docker 的过程中,许多用户会碰到设置了国内镜像源后,依旧无法拉取镜像的情况。接下来,记录了操作要点以及问题排查方法,帮助我们顺利解决这类问题。

Microsoft Windows [Version 10.0.27823.1000]
(c) Microsoft Corporation. All rights reserved.

(.venv) F:\PythonProjects\firecrawl>docker compose build
time="2025-04-17T11:17:29+08:00" level=warning msg="The \"MODEL_EMBEDDING_NAME\" variable is not set. Defaulting to a blank string."
……
[+] Building 0.2s (2/2) FINISHED                                                                                                            docker:desktop-linux
 => [playwright-service internal] load build definition from Dockerfile                                                                                     0.0s
 => => transferring dockerfile: 306B                                                                                                                        0.0s 
 => ERROR [playwright-service internal] load metadata for docker.io/library/node:18-slim                                                                    0.1s 
------
 > [playwright-service internal] load metadata for docker.io/library/node:18-slim:
------
failed to solve: node:18-slim: failed to resolve source metadata for docker.io/library/node:18-slim: failed to do request: Head "https://docker.m.daocloud.io/v2/library/node/manifests/18-slim?ns=docker.io": proxyconnect tcp: dial tcp 127.0.0.1:3067: connect: connection refused

(.venv) F:\PythonProjects\firecrawl>
failed to solve: node:18-slim: failed to resolve source metadata for docker.io/library/node:18-slim: failed to do request: Head "https://docker.m.daocloud.io/v2/library/node/manifests/18-slim?ns=docker.io": proxyconnect tcp: dial tcp 127.0.0.1:3067: connect: connection refused

当设置好国内镜像源却无法拉取镜像时,重启 Docker 服务是关键的第一步。这是因为只有重启服务,新设置的镜像源才能真正生效。重启完成后,需要耐心等待 Docker 服务完成初始化。初始化所需时间会因系统性能和 Docker 配置的差异而有所不同。待服务初始化完成且状态稳定后,再尝试执行拉取镜像的命令,这样能显著提高拉取镜像的成功率。

此外,若对代理进行了开启或关闭操作,同样不能忽视重启 Docker 服务这一重要环节。与设置镜像源后的操作类似,在变更代理状态后,要重启 Docker 并等待其完成初始化。只有确保系统环境稳定且配置生效,再运行拉取镜像的命令,才能避免因代理设置变动导致的网络连接异常,从而成功拉取镜像。

我在实际操作中,曾遇到过较为棘手的情况。无论是在代理模式还是非代理模式下,镜像拉取均告失败,即便此前已设置了国内镜像源。当尝试深度访问https://auth.docker.io/时,页面显示 “404 page not found”。经过深入排查,发现问题根源在于开机时的代理状态,我之前设置了开机自动开启代理,同时开机自动启动 Docker。这就造成了一种特殊状况:后续无论怎样操作代理软件(开启或关闭代理),Docker 的网络代理状态始终停留在代理开启或关闭前的状态。也就是说,虽然网络连接状态因代理软件操作发生了改变,但 Docker 的网络代理状态却未同步更新,这就是导致镜像反复拉取失败的原因。

为解决这一问题,我采取了以下操作:先手动关闭 Docker 服务,再关闭代理软件。接着,将代理软件重新启动到所需状态(开启或关闭代理线路),随后启动 Docker 服务。在等待 Docker 服务完成初始化后,再次尝试拉取镜像,这次终于成功了。

需要尝试的组合:

开启代理+直接拉取

关闭代理+重启Docker+重启终端 用镜像源拉取

开启或关闭代理后如果未能正常拉取,还需检查internet属性 选项中,关于 连接——局域网 设置中的代理变化情况。

也就是需要排查代理软件的运行状况是否正常,有没有出现延迟或卡顿或无法连接网络的情况。

如果关闭了代理,如下图所示,复选框都是未勾选状态。

如果关闭了代理,代理服务器的复选框仍有勾选,那就是代理软件未正确运行,需要重启或手动关闭代理进程并变更局域网代理设置。

通过上述操作要点和问题排查过程,大家能够更高效地解决 Docker 在设置国内镜像源后出现的镜像拉取问题,确保 Docker 的正常使用和镜像管理工作顺利进行。

Docker镜像源设置内容参考:

请参考站内大佬的配置文章

Docker Desktop 国内镜像源配置解决 “failed to authorize“ 问题_failed to authorize: failed to fetch anonymous tok-CSDN博客

配置内容可直接复制粘贴替换,替换前请先备份之前内容,修改配置有一定风险,请谨慎操作。

 设置完成后关闭代理,重启Docker服务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值