【问题标题】:Unable to pull docker image - Repository not found无法拉取 docker 映像 - 找不到存储库
【发布时间】:2017-04-21 08:07:09
【问题描述】:

我无法在我的环境中提取 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


    【解决方案1】:

    Docker 镜像可以由多个层组成。默认情况下,Docker 守护进程将一次拉取三层镜像,但如果镜像层数较少,则拉取更少。此外,如果没有提供标签,Docker 引擎默认使用:latest 标签。以上是您的拉取请求的基本日志,表明 docker 尝试拉取镜像层但失败,可能是由于防火墙限制或旧 docker 版本。

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

    不确定它尝试连接的所有地址以提取图像。

    【讨论】:

    • 如果防火墙阻止通信,那么 docker 不应该获取有关层的信息......还是我错了?
    • 每个 Docker 镜像引用代表文件系统差异的只读层列表。层相互堆叠以形成容器根文件系统的基础。 {fs} 这里的意思是 {filesystem}
    • @martinsefcik 在这种情况下,它也会显示Pulling fs layer。
    • 感谢您的解释,它帮助我了解了图层的工作原理。
    • @martinsefcik 很高兴它有帮助:)
    【解决方案2】:

    问题是防火墙在拉取图像期间阻止了连接。 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

    【讨论】:

      猜你喜欢
      • 2021-06-03
      • 1970-01-01
      • 2021-01-05
      • 2020-08-25
      • 2017-09-22
      • 2021-08-26
      • 2019-10-21
      • 2023-03-17
      • 1970-01-01
      相关资源
      最近更新 更多