docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker拉取失败,更换docker的源

docker拉取失败,更换docker的源方式

作者:return(b,a%b);

文章讨论了Docker客户端访问DockerHub或其他注册中心时遇到的错误,并提供了五种解决方法,包括检查网络、docker状态、更换源、重载和重启Docker服务以及重新执行docker pull hello-world命令

docker拉取失败,更换docker的源

docker pull hello-world时报错
hh@hh-virtual-machine:~$ docker pull hello-world
Using default tag: latest
Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded


hh@hh-virtual-machine:~$ docker pull registry.cn-hangzhou.aliyuncs.com/library/ubuntu:22.04
Error response from daemon: pull access denied for registry.cn-hangzhou.aliyuncs.com/library/ubuntu, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

这个错误表明Docker客户端尝试访问Docker Hub或其他Docker注册中心时出现了问题。

具体来说,是在尝试获取注册中心API的响应时遇到了错误。

可能的原因包括网络问题、认证问题、注册中心URL不正确或者注册中心服务本身不可用。

解决方法

检查网络

hh@hh-virtual-machine:~$ ping www.baidu.com
PING www.wshifen.com (119.63.197.151) 56(84) bytes of data.
64 bytes from 119.63.197.151 (119.63.197.151): icmp_seq=1 ttl=49 time=161 ms
64 bytes from 119.63.197.151 (119.63.197.151): icmp_seq=2 ttl=49 time=164 ms
64 bytes from 119.63.197.151 (119.63.197.151): icmp_seq=3 ttl=49 time=160 ms
^C
--- www.wshifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 160.431/161.615/163.762/1.520 ms

检查docker状态

hh@hh-virtual-machine:~$ systemctl status docker
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2025-11-07 14:02:48 CST; 17min ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 1335 (dockerd)
      Tasks: 16
     Memory: 122.3M
        CPU: 1.526s
     CGroup: /system.slice/docker.service
             └─1335 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

11月 07 14:18:15 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:15.098431463+08:00" level=error msg="Handler for POST /v1.51/images/create returned error: Get \"https://hub-mirror.c.163.com/v2/\": dial tcp: lookup hub-mirror.c.163.com on 127>
11月 07 14:18:36 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:36.217686088+08:00" level=warning msg="Error getting v2 registry: Get \"https://docker.mirrors.ustc.edu.cn/v2/\": dial tcp: lookup docker.mirrors.ustc.edu.cn on 127.0.0.53:53: n>
11月 07 14:18:36 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:36.217749899+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://docker.mirrors.ustc.edu.cn/v2/\": dial tcp: lookup docker.mirrors.ustc.edu.cn on>
11月 07 14:18:36 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:36.269239801+08:00" level=warning msg="Error getting v2 registry: Get \"https://hub-mirror.c.163.com/v2/\": dial tcp: lookup hub-mirror.c.163.com on 127.0.0.53:53: no such host"
11月 07 14:18:36 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:36.269318729+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://hub-mirror.c.163.com/v2/\": dial tcp: lookup hub-mirror.c.163.com on 127.0.0.53:>
11月 07 14:18:51 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:51.271108112+08:00" level=warning msg="Error getting v2 registry: Get \"https://registry.docker-cn.com/v2/\": net/http: request canceled while waiting for connection (Client.Tim>
11月 07 14:18:51 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:18:51.271180286+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://registry.docker-cn.com/v2/\": net/http: request canceled while waiting for conne>
11月 07 14:19:06 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:19:06.271769052+08:00" level=warning msg="Error getting v2 registry: Get \"https://registry-1.docker.io/v2/\": context deadline exceeded"
11月 07 14:19:06 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:19:06.271862946+08:00" level=info msg="Attempting next endpoint for pull after error: Get \"https://registry-1.docker.io/v2/\": context deadline exceeded"
11月 07 14:19:06 hh-virtual-machine dockerd[1335]: time="2025-11-07T14:19:06.273537816+08:00" level=error msg="Handler for POST /v1.51/images/create returned error: Get \"https://registry-1.docker.io/v2/\": context deadline exceeded"

更换源

systemctl status docker
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json  
添加:
{
  "registry-mirrors" : ["https://docker.registry.cyou",
"https://docker-cf.registry.cyou",
"https://dockercf.jsdelivr.fyi",
"https://docker.jsdelivr.fyi",
"https://dockertest.jsdelivr.fyi",
"https://mirror.aliyuncs.com",
"https://dockerproxy.com",
"https://mirror.baidubce.com",
"https://docker.m.daocloud.io",
"https://docker.nju.edu.cn",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://docker.mirrors.ustc.edu.cn",
"https://mirror.iscas.ac.cn",
"https://docker.rainbond.cc",
"https://do.nark.eu.org",
"https://dc.j8.work",
"https://dockerproxy.com",
"https://gst6rzl9.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"http://mirrors.ustc.edu.cn/",
"https://mirrors.tuna.tsinghua.edu.cn/",
"http://mirrors.sohu.com/"  
],
 "insecure-registries" : [
    "registry.docker-cn.com",
    "docker.mirrors.ustc.edu.cn"
    ],
"debug": true,
"experimental": false
}

重载和重启dockers服务

sudo systemctl daemon-reload
sudo systemctl restart docker
docker info

重新执行

docker pull hello-world

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文