基础镜像无法在 Dockerfile 中拉取,但可以通过 docker pull 命令拉取

问题描述 投票:0回答:1

我遇到了一个问题:我指定了基本图像

FROM openjdk:8-jdk-slim
docker build 报告了一个问题

$ docker build .
#2 [internal] load .dockerignore
#2 sha256:2c93e14eb3549bf8ce40ea8e6e0a0fb6a24a64f2fffa6c030b807e817981ff59
#2 transferring context: 2B 0.0s done
#2 DONE 0.1s

#1 [internal] load build definition from Dockerfile
#1 sha256:91b2fa387ccc0f9f6bbda90d53cf9582e2aef62a4496456a63fd784cf2943f93
#1 transferring dockerfile: 1.02kB 0.1s done
#1 DONE 0.2s

#3 [internal] load metadata for docker.io/library/openjdk:8-jdk-slim
#3 sha256:14693bdc7fcd16ee4b599f8ecd52de3ef039c0f424e644564425aa0a983eee2c
#3 ERROR: failed to authorize: rpc error: code = Unknown desc = failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fopenjdk%3Apull&service=registry.docker.io": dial tcp 3.228.155.36:443: i/o timeout
------
 > [internal] load metadata for docker.io/library/openjdk:8-jdk-slim:
------
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%3Alibrary%2Fopenjdk%3Apull&service=registry.docker.io": dial tcp 3.228.155.36:443: i/o timeout

但是

docker pull openjdk:8-jdk-slim
成功了

我认为这是相同的 docker pull 但我不明白为什么一个失败而另一个成功。

dockerfile docker-registry
1个回答
0
投票

当我使用buildx工具为不同的环境构建docker镜像时遇到了同样的问题。为了为不同的环境构建容器,docker 生成了一个 build-kit 容器。如果您的 PC 在网络切换期间已经运行此容器一段时间,则该容器可能会丢失与互联网的连接,从而导致此类错误。简单地删除正在运行的容器并重新运行构建命令对我来说很有效,因为它会重新生成一个具有正确网络连接的新构建工具包容器来构建 docker 文件。

© www.soinside.com 2019 - 2024. All rights reserved.