fetch failed error=“failed to do request: Head \“https://registry-1.docker.io/v2/library
由于运营商网络原因,会导致您拉取Docker Hub镜像变慢,甚至下载失败。此文档提供了如何配置镜像加速,从而加速官方镜像的下载。
·
现象描述
通过nerdctl工具无法拉取镜像(已配置containerd镜像加速地址,crictl image pull正常)
~# nerdctl pull redis:latest
docker.io/library/redis:latest: resolving |--------------------------------------|
elapsed: 29.9s total: 0.0 B (0.0 B/s)
INFO[0030] fetch failed error="failed to do request: Head \"https://registry-1.docker.io/v2/library/redis/manifests/latest\": dial tcp 182.50.139.56:443: i/o timeout" host=registry-1.docker.io
ERRO[0030] active check failed error="context canceled"
FATA[0030] failed to resolve reference "docker.io/library/redis:latest": failed to do request: Head "https://registry-1.docker.io/v2/library/redis/manifests/latest": dial tcp 182.50.139.56:443: i/o timeout
环境概览
| 组件名称 | 组件版本 |
|---|---|
| containerd | v1.7.13 |
| kubernetes | v1.30.6 |
| crictl | v1.29.0 |
| nerdctl | 2.0.2 |
调整containerd镜像加速配置
原镜像加速配置:
...
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = ""
[plugins."io.containerd.grpc.v1.cri".registry.auths]
[plugins."io.containerd.grpc.v1.cri".registry.configs]
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.md-sh.com"]
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.md-sh.com".auth]
auth = ""
identitytoken = ""
password = "xxxxxxxx"
username = "md"
[plugins."io.containerd.grpc.v1.cri".registry.configs."harbor.md-sh.com".tls]
ca_file = ""
cert_file = ""
insecure_skip_verify = true
key_file = ""
[plugins."io.containerd.grpc.v1.cri".registry.headers]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
endpoint = ["https://docker.m.daocloud.io", "https://docker.ketches.cn", "https://proxy.1panel.live"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor.md-sh.com"]
endpoint = ["https://harbor.md-sh.com"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."nvcr.io"]
endpoint = ["https://nvcr.mirrorify.net"]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.k8s.io"]
endpoint = ["https://k8s.monlor.com"]
调整后的配置:
1、编辑/etc/containerd/config.toml,调整config_path
...
[plugins."io.containerd.grpc.v1.cri".registry]
config_path = "/etc/containerd/certs.d"
...
2、创建镜像加速器配置文件
mkdir /etc/containerd/certs.d/docker.io -p
tee /etc/containerd/certs.d/docker.io/hosts.toml << 'EOF'
server = "https://docker.io"
[host."https://docker.m.daocloud.io"]
capabilities = ["pull", "resolve", "push"]
[host."https://hub.mirrorify.net"]
capabilities = ["pull", "resolve", "push"]
[host."https://proxy.1panel.live"]
capabilities = ["pull", "resolve", "push"]
EOF
3、重启containerd测试
systemctl restart containerd.service
nerdctl pull redis:latest
docker.io/library/redis:latest: resolved |++++++++++++++++++++++++++++++++++++++|
index-sha256:05f99264e2928ad472f2751b3a8d1f65c9c2cc1819be04548b2261c08e2e026b: done |++++++++++++++++++++++++++++++++++++++| manifest-sha256:18077322db9506f5df37db3e0f7080574853d593bcd23a4d42d551a3127b55fd: done |++++++++++++++++++++++++++++++++++++++| config-sha256:2724e40d4303391e1a46884134da358e20a6d0b03f32ee6c412079ddb4ac6783: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:fd674058ff8f8cfa7fb8a20c006fc0128541cbbad7f7f7f28df570d08f9e4d92: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:4c9c306fe0ac78b240423fb9c7933cfccfb970be4f789b072243e78f58db9da4: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:76f0f8a4aae4c12c94163c6bfa2a0a8718a9e4504f86bd3aacccc7cc097b5849: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:d334c6665cc1a47885608cbec05a935eaea0cecf6183313b4ecd96a70ebb7a2e: done |++++++++++++++++++++++++++++++++++++++|
layer-sha256:f3615eb0792b5465c4c67421699a5e42bc4a02fc3dcccc5b5fc73a6b1d4b99d2: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:e0b2e54213f58e928ab3b0cd2fd524650df6d79d0bcce5050e4b3e2497e4f839: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:4f4fb700ef54461cfa02571ae0db9a0dc1e0cdb5577484a6d75e68dc38e8acc1: done |++++++++++++++++++++++++++++++++++++++| layer-sha256:47cee545c70a2f5e034c7ba42554655724c5151f14a5b48b6dd9e9d66f47b0c3: done |++++++++++++++++++++++++++++++++++++++| elapsed: 76.8s total: 42.9 M (572.4 KiB/s)
附1:安装nerdctl
下载链接:https://github.com/containerd/nerdctl/releases/tag/v2.0.2
nerdctl 官方发布包含两个安装版本:
- Minimal (nerdctl-2.0.2-linux-amd64.tar.gz): nerdctl only
- Full (nerdctl-full-2.0.2-linux-amd64.tar.gz): Includes dependencies such as containerd, runc, and CNI
nerdctl bash自动补全
~# nerdctl completion bash > /etc/bash_completion.d/nerdctl
~# source /etc/bash_completion.d/nerdctl
附2:其他镜像加速需要逐一添加
更多推荐




所有评论(0)