无法拉取 docker 镜像 - 未找到存储库

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

我无法在我的环境中提取 docker 映像。我认为它被公司防火墙阻止了,但我不确定为什么它会获取图层信息,然后它会打印未找到存储库。

sudo docker pull hello-world
latest: Pulling from hello-world
50a54e1f9180: Pulling fs layer
7a5a2d73abce: Pulling fs layer
Pulling repository hello-world
Repository not found

Docker 版本:(我无法在 RHEL 6.9 上升级到最新的 docker)

Docker version 1.7.1, build 786b29d/1.7.1

有人可以解释一下在 docker 镜像拉取阶段使用哪些协议(仅限 https?)以及联系哪些地址(仅限“https://registry-1.docker.io/v2”?)?

docker firewall rhel
2个回答
1
投票

问题是防火墙在拉取映像期间阻止连接。 Docker 注册表使用 CDN,因此需要允许更多 URL,而不仅仅是注册表 URL。

我请求在公司防火墙上允许以下 URL,现在可以正常工作。

dseasb33srnrn.cloudfront.net
auth.docker.io
elb-registry.us-east-1.aws.dckr.io.
us-east-1-elbregis-10fucsvj1tcgy-133821800.us-east-1.elb.amazonaws.com
registry-1.docker.io
registry-origin.docker.io
index.docker.io
elb-io.us-east-1.aws.dckr.io
us-east-1-elbio-rm5bon1qaeo4-623296237.us-east-1.elb.amazonaws.com

Docker 日志文件 (/var/log/docker) 帮助我识别根本问题。 出现以下错误:

level=error msg="Error from V2 registry: Get https://dseasb33srnrn.cloudfront.net/registry-v2/docker/registry/v2/blobs/sha256/78/78445dd45222097f5f8d5a16e48dc19c4ca162dcdb80010ab6f1ccfc7e2c0fa3/data?Expires=1493033299&Signature=DiEmffSxF1F9z-SRoGyX3NwzfeQY3BhE2Du3aPb1qy9VglXyn1mus7Xy9Y~DQnwaQ9IIN71FboK5lOAiN1Qj-x662qhioi72CJ-v02fiMHqC03FDb0l4LyULquU8GaalW3uZG4hdfuSqOBQ1qo9HEcxhMyQGqOqpfPUKjUlHqm8_&Key-Pair-Id=APKAJECH5M7VWIS5YZ6Q: read tcp 52.85.173.110:443: connection reset by peer"

我在这里找到了需要允许的 URL 列表: https://forums.docker.com/t/list-of-docker-hub-mirror-sites-to-configure-proxy-whitelist/20845/2


1
投票

Docker 镜像可以由多个层组成。默认情况下,Docker 守护进程将一次拉取一个镜像的三层,但如果镜像的层数较少,则拉取的数量会减少。此外,如果未提供标签,Docker 引擎将默认使用

:latest
标签。上面是拉取请求的基本日志,表明 docker 尝试拉取图像层但失败,可能是由于 防火墙限制或较旧的 docker 版本

Docker 使用

https://
协议与注册表进行通信, 除非允许通过不安全的方式访问注册表 连接。

不确定它尝试连接哪些地址来提取图像。

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