Docker:错误 [内部] 加载 docker.io 的元数据

bat*_*her 5 windows docker docker-desktop

在 Windows 10 上,Docker Desktop(Docker Engine v20.10.17,启用 WSL 并正常运行)无法生成docker build映像(顺便说一句,在 Debian 11 上正常工作),并抛出以下错误:

docker build -t <image-name> .
[+] Building 2.3s (3/3) FINISHED
 => [internal] load build definition from Dockerfile                                0.1s
 => => transferring dockerfile: 32B                                                 0.0s
 => [internal] load .dockerignore                                                   0.1s
 => => transferring context: 2                                                      0.0s
 => ERROR [internal] load metadata for docker.io/rocker/r-base:4.2.1                2.0s
------                                                                                                                                                                     > [internal] load metadata for docker.io/rocker/r-base:4.2.1:                                                                                                            ------
failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize:
rpc error: code = Unknown desc = failed to fetch anonymous token: Get
"https://auth.docker.io/token?scope=repository%3Arocker%2Fr-base%3Apull&service=registry.docker.io":
dial tcp: lookup auth.docker.io: no such host
Run Code Online (Sandbox Code Playgroud)

此处回答了类似的案例,尽管该解决方案不适用于我的案例。在网上搜索了几个类似(但不相同)的案例,但解决方案不同(包括重新安装),但都未能解决此问题。

bat*_*her 22

最后,我在 Docker 论坛中找到了一个(或)解决方案:在 Docker Desktop 中,导航到“设置”>“Docker 引擎”,在 Docker 守护程序配置文件中更改buildkitfalse,然后单击“应用并重新启动”。

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": false
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 可以工作,但失去了所有 buildkit 的优势。 (3认同)