我无法在我的环境中拉动泊坞窗图像。我认为它已被公司防火墙阻止,但我不确定为什么它会获取图层信息以及后来它打印出未找到存储库。
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
有人可以解释一下在泊坞窗图像提取阶段使用了哪些协议(仅限https?)以及联系了哪些地址(仅限“https://registry-1.docker.io/v2”?)?
答案 0 :(得分:1)
Docker镜像可以包含多个图层。默认情况下,Docker守护程序将一次拉出三层图像,但如果图像具有较少的图层,则会拉得更少。此外,如果未提供任何标记,则Docker Engine会将:latest
标记用作默认值。上面是您的拉取请求的基本日志,表明docker试图拉动图像层但是失败,可能是由于防火墙限制或旧版本的docker版本。
Docker使用
https://
协议与注册表进行通信, 除非允许通过不安全的方式访问注册表 连接。
不确定它尝试连接所有地址以拉取图像。
答案 1 :(得分:1)
问题是防火墙在拉动图像时阻止了连接。 Docker注册表使用CDN,因此需要允许更多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"
我在此处找到的需要允许的网址列表: https://forums.docker.com/t/list-of-docker-hub-mirror-sites-to-configure-proxy-whitelist/20845/2