Docker无法pull镜像的常见原因及解决方法汇总

 更新时间:2025年08月20日 09:12:34   作者:云探  
在使用 Docker 时,我们经常会通过 docker pull 命令获取镜像,但有时会遇到 pull 不下来的问题,下面小编就来和大家总结一下常见的失败原因及对应的解决方法吧

在使用 Docker 时,我们经常会通过 docker pull 命令获取镜像,但有时会遇到 pull 不下来的问题。本文总结了常见的失败原因及对应的解决方法,适用于初学者和开发者查错参考。

一、常见错误现象

1.net/http: request canceled while waiting for connection

2.Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: TLS handshake timeout

3.connection refused

4.unauthorized: authentication required

5.denied: requested access to the resource is denied

6.Error response from daemon: manifest for xxx not found

二、解决方法汇总

1. 网络连接问题

最常见的原因是网络连接 Docker Hub 不稳定或被墙:

解决方案:

检查 DNS 设置,推荐使用阿里 DNS(223.5.5.5)或 Google DNS(8.8.8.8):

编辑 /etc/resolv.conf,添加:

nameserver 8.8.8.8
nameserver 223.5.5.5

使用国内镜像源,例如:

编辑 /etc/docker/daemon.json:

{
  "registry-mirrors": ["https://registry.docker-cn.com", "https://hub-mirror.c.163.com"]
}

重启 Docker:

sudo systemctl daemon-reexec
sudo systemctl restart docker

2. 镜像名称错误或不存在

比如打错镜像名、版本号错误等。

解决方案:

确认镜像名称拼写正确,例如:

docker pull nginx:latest

建议先通过 Docker Hub 网站或命令查找可用 tag:

docker search nginx

3. 权限问题(unauthorized)

有些镜像仓库(如私有仓库)需要登录授权。

解决方案:

使用 docker login 登录:

docker login

然后重新 pull。

4. 镜像 tag 不存在(manifest not found)

比如使用了错误的 tag。

解决方案:

先查看支持的 tag 列表:

docker pull image-name

或直接访问:https://hub.docker.com/

5. 代理问题(公司网络)

某些公司网络需要设置代理才能正常连接 Docker Hub。

解决方案:

配置 Docker 的代理:

编辑 /etc/systemd/system/docker.service.d/http-proxy.conf:

[Service]
Environment="HTTP_PROXY=http://your-proxy.com:port/"
Environment="HTTPS_PROXY=http://your-proxy.com:port/"

重启 Docker:

sudo systemctl daemon-reexec
sudo systemctl restart docker

6、无法在线 pull 镜像?试试离线下载镜像并导入

当服务器无法访问外网、Docker Hub 被墙或出于内网环境部署需求,可以选择离线下载 Docker 镜像,然后导入到目标服务器中使用。

离线导入镜像的完整流程如下:

Step 1:在可联网的机器上下载镜像

docker pull nginx:1.25

下载完成后,将镜像保存为 tar 文件:

docker save -o nginx_1.25.tar nginx:1.25

Step 2:将 tar 包复制到目标服务器

可以使用 scp、U 盘、内网传输等方式将 nginx_1.25.tar 拷贝至目标服务器。

scp nginx_1.25.tar user@192.168.x.x:/home/user/

Step 3:在目标服务器上导入镜像

docker load -i nginx_1.25.tar

验证镜像是否导入成功:

docker images

输出结果应包含 nginx:1.25

提示:

离线导入支持多个镜像合并保存,例如:

docker save -o images.tar nginx:1.25 redis:7.2

同理,导入后也可用 docker tag 重命名或上传至私有仓库。

三、建议

遇到 pull 问题时,先执行 docker info 查看当前配置。

多用官方镜像,避免使用 tag 为 latest 造成不可控更新。

如果长期开发,建议搭建本地 Harbor 仓库,提高效率。

到此这篇关于Docker无法pull镜像的常见原因及解决方法汇总的文章就介绍到这了,更多相关Docker解决无法pull镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker compose部署cassandra集群的操作代码

    docker compose部署cassandra集群的操作代码

    这篇文章主要介绍了docker compose部署cassandra集群的操作代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2024-03-03
  • docker入门教程(利用docker部署web应用)

    docker入门教程(利用docker部署web应用)

    docker是一个用来装应用的容器,就像杯子可以装水,笔筒可以放笔,书包可以放书,可以把hello word放在docker中,可以把网站放入docker中,可以把任何想得到的程序放在docker中,这篇文章主要介绍了docker入门(利用docker部署web应用),需要的朋友可以参考下
    2023-02-02
  • docker compose安装es+kibana 8.12.2的详细过程

    docker compose安装es+kibana 8.12.2的详细过程

    因云平台需要改造,es7升级为es8,所以记录一下,es8需要开启ssl认证,需要配置证书,全本带你用docker安装,便于后面es8的学习,这篇文章主要介绍了docker compose安装es+kibana 8.12.2的详细过程,感兴趣的朋友跟随小编一起看看吧
    2024-05-05
  • 详解为 Docker 设置代理

    详解为 Docker 设置代理

    本篇文章主要介绍了为 Docker 设置代理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • docker搭建emqx全过程

    docker搭建emqx全过程

    EMQX 是一个开源的、高度可扩展的、跨平台的MQTT代理,用于处理来自物联网、移动应用程序和分布式系统的数据,本文给大家介绍docker搭建emqx的详细过程,感兴趣的朋友一起看看吧
    2024-03-03
  • docker上安装使用mysql镜像

    docker上安装使用mysql镜像

    本文主要给大家介绍了如何在docker中安装并运行MySQL镜像,属于个人尝试,这里总结下分享给大家,有需要的小伙伴可以参考下
    2017-02-02
  • Docker中的容器文件拷贝及目录挂载方式

    Docker中的容器文件拷贝及目录挂载方式

    这篇文章主要介绍了Docker中的容器文件拷贝及目录挂载方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker容器 日志中文乱码问题解决办法

    Docker容器 日志中文乱码问题解决办法

    这篇文章主要介绍了Docker容器 日志中文乱码问题解决办法的相关资料,需要的朋友可以参考下
    2016-12-12
  • Docker部署项目完全使用指南(小结)

    Docker部署项目完全使用指南(小结)

    本文主要介绍了Docker部署项目完全使用指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • Docker拉取镜像的解决方案

    Docker拉取镜像的解决方案

    署Docker最耗时间的就是下载镜像(images)了,而且还要考虑下载镜像的版本是否合适,那么有没有办法快速下载镜像呢?本文给大家介绍Docker拉取镜像的解决方案,一起看看吧
    2023-11-11

最新评论