#记录工作
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服务。