加载中...

docker pull 超时Timeout失败的解决办法

docker pull 超时Timeout失败的解决办法

当国内开发者docker pull遇到如下提示时,不要惊讶

[root@vm /]# docker pull postgres
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp 128.121.146.235:443: i/o timeout
[root@vm /]# 
  • 1
  • 2
  • 3
  • 4

自2024-06-06开始,国内的Docker Hub镜像加速器相继不能正常使用,之前配置的

[root@vm /]# cat /etc/docker/daemon.json 
{
    "registry-mirrors": [
        "https://docker.mirrors.ustc.edu.cn"
    ]
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

不论清华、阿里云、科大、163等等都已失效,或只允许内部访问。
其实有更简单、速度更快的办法,以下是经过亲自测试可行。

一、AtomHub可信镜像中心

由开放原子开源基金会牵头,联合多家行业伙伴发起,遵循OCI(Open Container Initiative,以下简称“OCI”)容器镜像标准,旨在为开发者提供开放中立、安全可信、高效便捷的新一代开源容器镜像中心

特点:国内访问速度快(推荐)

网址:https://hub.atomgit.com

New Image

例如:搜索自己需要的镜像
New Image
然后docker pull hub.atomgit.com/library/postgres:15-alpine3.17
就OK了

二、Chainguard (备用)

Chainguard 是一个专注于提供安全容器镜像的公司,致力于从源头消除 CVE(Common Vulnerabilities and Exposures,通用漏洞和曝光)问题。

特点:镜像文件比较小

https://images.chainguard.dev

New Image
搜索镜像
New Image
docker pull cgr.dev/chainguard/postgres

简单对比一下速度

[root@vm apisql]# time docker pull cgr.dev/chainguard/postgres
Using default tag: latest
latest: Pulling from chainguard/postgres
d3f07142fdd6: Pull complete 
Digest: sha256:fd46506abb83d63993c08da469434079e792de2c6f5459bbb99fbaecf8cc7835
Status: Downloaded newer image for cgr.dev/chainguard/postgres:latest
cgr.dev/chainguard/postgres:latest

real	0m57.700s
user	0m0.019s
sys	0m0.011s

[root@vm apisql]# time docker pull hub.atomgit.com/library/postgres:15-alpine3.17
15-alpine3.17: Pulling from library/postgres
ee4b481db132: Pull complete 
c701bdac6d5c: Pull complete 
efb481014518: Pull complete 
7a8407cb3541: Pull complete 
f5dd2441c6c6: Pull complete 
980832abee30: Pull complete 
859d0db327f6: Pull complete 
b00939ae8502: Pull complete 
Digest: sha256:1a6fab51c426cf01602f93cc13767f92fc333f0a7e598ac6d0640840144ea8b2
Status: Downloaded newer image for hub.atomgit.com/library/postgres:15-alpine3.17
hub.atomgit.com/library/postgres:15-alpine3.17

real	0m8.241s
user	0m0.012s
sys	0m0.011s
[root@vm apisql]# docker images
REPOSITORY                         TAG             IMAGE ID       CREATED         SIZE
cgr.dev/chainguard/postgres        latest          47473ce3dbef   11 hours ago    100MB
hub.atomgit.com/library/postgres   15-alpine3.17   ed93f48a4bd9   10 months ago   248MB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

ChainGuard 拉取的镜像体积较小,仅100MB,但需要57秒;
而开放原子开源基金会 AtomHub 提供的镜像体积约为250MB,仅需8秒。

New Image

最后,我要特别感谢开放原子开源基金会 AtomHub 的成员单位,他们为开发者做出的贡献是值得称赞的。