ubuntu系统中无法拉取docker镜像的问题及解决

 更新时间:2026年04月13日 09:16:52   作者:半壶清水  
作者遇到的docker拉取mysql8.0镜像失败的问题,通过更换镜像加速器、更新配置、诊断DNS解析问题等步骤,最终成功使用DaoCloud镜像站拉取镜像,作者分享了解决问题的过程和经验,对遇到类似问题的人会有帮助

1、检查基础环境

1.1 查看docker运行状态

 sudo systemctl status docker

1.2 查看docker镜像加速器

cat /etc/docker/daemon.json
  • 如下图是阿里云的镜像加速器


以上说明环境配置正确。接下来我们拉取mysql的docker镜像。

2、故障描述

2.1、尝试拉取mysql 8.0 的docker镜像

sudo docker pull mysql:8.0

2.2 控制台输出的故障描述

Error response from daemon: unknown: failed to resolve reference
“docker.io/library/mysql:8.0”: unexpected status from HEAD request to
https://2u56bifc.mirror.aliyuncs.com/v2/library/mysql/manifests/8.0?ns=docker.io:
403 Forbidden

2.3 故障现象解读

根据上述错误日志,可以看出镜像服务器拒绝了访问请求。

表示系统无法识别或处理指定的引用或资源。

3、问题处理思路:

3.1 查看你 Docker 配置文件中关于镜像加速器的设置

cat /etc/docker/daemon.json
  • 从下图可知,阿里云镜像加速器配置没有问题

3.2 更新镜像源配置

  • 更新为网易源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

3.3 重新拉取docker镜像

sudo docker pull mysql:8.0

3.4 分析新的故障现象

  • 看看这次的故障现象和初始故障明显不同

Error response from daemon: failed to resolve reference
“docker.io/library/mysql:8.0”: failed to do request: Head
“https://hub-mirror.c.163.com/v2/library/mysql/manifests/8.0?ns=docker.io”:
dial tcp: lookup hub-mirror.c.163.com on 127.0.0.53:53: no such host

  • 新故障现象解读

这个新的错误表明,系统无法将网易镜像的域名 hub-mirror.c.163.com 解析为IP地址。可见这是一个 DNS解析故障。

3.5 诊断DNS解析问题

  • 尝试解析网易镜像源域名
  nslookup hub-mirror.c.163.com

试试解析百度域名

 nslookup www.baidu.com

  • 通过对比,解析网易域名失败,但解析百度域名成功。可以确认我的DNS服务器工作正常,但可能无法解析网易这个特定域名。可见还是镜像站不可用。

3.6 继续更换新的镜像站

  • 尝试使用DaoCloud 镜像站
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.m.daocloud.io"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 我们先尝试解析IP:
nslookup docker.m.daocloud.io

  • 上图中域名解析成功,我们再尝试拉取mysql:8.0镜像,这次可以成功下载。
sudo systemctl pull mysql:8.0


4、总结

如果你不知道哪个镜像站可用,你也可以将一些常用的站点一次写入到你的daemon.json文件中:

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": [
  "https://docker.m.daocloud.io",
  "https://docker.mirrors.ustc.edu.cn",
  "https://mirror.baidubce.com",
  "https://docker.nju.edu.cn",
  "https://docker.mirrors.sjtug.sjtu.edu.cn",
  "https://docker.mirrors.ustc.edu.cn",
  "https://mirror.ccs.tencentyun.comk",
  "https://registry.docker-cn.com",
  ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

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

相关文章

  • 清理docker占用磁盘过大问题终极方案(亲测有效!)

    清理docker占用磁盘过大问题终极方案(亲测有效!)

    Docker很占用空间每当我们运行容器、拉取镜像、部署应用、构建自己的镜像时我们的磁盘空间会被大量占用,这篇文章主要给大家介绍了关于清理docker占用磁盘过大问题终极方案,需要的朋友可以参考下
    2024-04-04
  • Windows10系统下docker安装指南以及踩坑解决

    Windows10系统下docker安装指南以及踩坑解决

    这篇文章主要给大家介绍了关于Windows10系统下docker安装指南以及踩坑解决的相关资料,相信大家都知道Docker有很多种安装的选择,其中支持最好的是Ubuntu系统,而且docker如果想在windows上运行必须借助docker-machine,需要的朋友可以参考下
    2023-08-08
  • Docker安装Jenkins并部署Maven项目详细教程

    Docker安装Jenkins并部署Maven项目详细教程

    这篇文章主要给大家介绍了关于Docker安装Jenkins并部署Maven项目的相关资料,持续集成、持续交付不仅可以提示开发效率,还可以节省很多测试和运维的成本,需要的朋友可以参考下
    2023-12-12
  • Docker开启安全的TLS远程连接访问方式

    Docker开启安全的TLS远程连接访问方式

    本篇文章给大家介绍Docker开启安全的TLS远程连接,重新加载docker配置方法,教大家如何建立基于TLS数字签名的安全连接,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • 解析docker妙用SpringBoot构建微服务实战记录

    解析docker妙用SpringBoot构建微服务实战记录

    Spring Boot 是 Spring 开源组织的子项目,是 Spring 组件一站式解决方案,本文通过详细案例给大家解析docker妙用SpringBoot构建微服务实战记录,感兴趣的朋友跟随小编一起看看吧
    2021-11-11
  • docker通过Dockerfile修改镜像中tomcat的端口

    docker通过Dockerfile修改镜像中tomcat的端口

    8080端口会经常出现被占用的情况,本文主要介绍了docker通过Dockerfile修改镜像中tomcat的端口,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • docker overlay扩容问题

    docker overlay扩容问题

    这篇文章主要介绍了docker overlay扩容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker Compose 常用命令详解(最新推荐)

    Docker Compose 常用命令详解(最新推荐)

    Docker Compose 是一个用于定义和运行多容器 Docker 应用的工具,本文将详细介绍 Docker Compose 的常用命令,帮助你高效地管理容器应用,感兴趣的朋友一起看看吧
    2025-04-04
  • Docker下MySQL配置文件不生效的解决方法(超全面!)

    Docker下MySQL配置文件不生效的解决方法(超全面!)

    在Docker中运行MySQL并遇到需要调整配置的情况时,比如想要关闭ONLY_FULL_GROUP_BY的严格模式,我们可以通过以下步骤来实现sql_mode的修改:以下是解决此类问题的步骤和思路,需要的朋友可以参考下
    2024-09-09
  • docker部署mysql 9.0.1的实现

    docker部署mysql 9.0.1的实现

    本文主要介绍了docker部署mysql 9.0.1的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-02-02

最新评论