拉取 Dockerhub 镜像,无法连接 Cloudflare
微信公众号
·
2021-11-12
·
via 陈少文的网站
陈少文的网站 Posts 拉取 Dockerhub 镜像,无法连接 Cloudflare Please enable Javascript to view the contents
1. 错误提示 在拉取镜像时,偶尔会碰到如下错误:
1
2
3
4
5
6
7
8
docker pull node:10.16-alpine
10.16-alpine: Pulling from library/node
e7c96db7181b: Already exists
50958466d97a: Pulling fs layer
56174ae7ed1d: Pulling fs layer
284842a36c0d: Pulling fs layer
error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2 /docker/registry/v2/blobs/sha256/b9/b95baba1cfdbfa8b789137179d8e fff08b9768f1906725a8758cf0c431b59621/data? verify = 1636603895-lbb1QIruPZBdfgfhBZ95ArGK0wU%3D: dial tcp 104.18.124.25:443: i/o timeout
2. 主要解决办法 2.1 修改 DNS 地址 如果是 CentOS ,直接修改 /etc/resolv.conf 文件,新增一行 nameserver 8.8.8.8 即可。
如果是 Ubuntu ,需要修改 /etc/systemd/resolved.conf,添加如下内容:
[Resolve]
DNS=8.8.8.8
接着执行命令 systemctl restart systemd-resolved 重启服务即可。
2.2 本地与服务器时间偏差过大 执行如下命令,进行时间同步:
1
ntpdate time.windows.com
2.3 配置镜像加速 配置镜像加速之后,如果待拉取的镜像已经存在于 mirror ,则直接从 mirror 拉取镜像层数据。
1
2
3
{
"registry-mirrors" : [ "https://ustc-edu-cn.mirror.aliyuncs.com" ]
}
3. 可能的原因 3.1 Cloudflare 的 IP 被禁 Dockerhub 借助 Cloudflare 的网络进行镜像的分发。在国内环境下,Cloudflare IP 的可用性得不到保障,部分 IP 被禁。
通过修改 nameserver 改变了 production.cloudflare.docker.com 指向的服务 IP 地址,切换到其他 IP 上尝试。而进行时间同步,应对的是证书无效问题,这里可能并没有效果,而只是拖延了时间,以便 DNS 指向发生变化。配置镜像加速之后,拉取镜像的 IP 会发生变化,也有可能解决问题。
3.2 Dockerhub 提升营收的策略 由于 Dockerhub 大部分都是免费的用户,难以承担巨额的带宽和存储费用,因此免费用户在可用性受损。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。