当前位置: 首页 > news >正文

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服务。

相关文章:

  • postman莫名奇妙报错,可能是注释引起的。postman 过滤请求体中的注释。
  • Oracle 19c部署之数据库软件安装(二)
  • 细说STM32单片机FreeRTOS任务管理API函数及多任务编程的实现方法
  • 深入了解v-model的原理:v-model拆分为value属性和input事件,表单类组件的封装并用v-model简化代码
  • 【python画图】:从入门到精通绘制完美柱状图
  • 【Qt】初识Qt(一)
  • 4.15【Q】netsafe
  • 量化交易 - 布林带(Bollinger Bands)策略研究 - 源码
  • 智能制造中如何进行智能工厂三年规划设计?【附全文阅读】
  • 双指针算法(二)
  • 【系统搭建】DPDK实现两虚拟机基于testpmd和l2fwd的收发包
  • C++之类模板
  • 基于AI大语言模型的历史文献分析在气候与灾害重建领域中的技术应用
  • 对抗生成进化:基于DNA算法的AIGC检测绕过——让AI创作真正“隐形“
  • ubtuntu安装docker拉取iwebsec镜像
  • 智慧矿山数字孪生解决方案:技术剖析与实践
  • Windows快速切换屏幕/桌面
  • java基础练习DEMO
  • zynq7020 ubuntu_base 跟文件系统
  • 深入解析Java Socket服务器实现:从基础到优雅停机
  • 国家卫健委有关负责人就白皮书发布答记者问
  • 街区党支部书记们亮出治理实招,解锁“善治街区二十法”
  • 开门红背后的韧性密码:上海八大企业的“反脆弱”与“真功夫”
  • 光明网评论员:手机“二次放号”,需要重新确认“你是你”
  • 法院为“外卖骑手”人身权益撑腰:依法认定实际投保人地位
  • 日月谭天丨赖清德强推“脱中入北”是把台湾带向死路