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 搭建 Anythingllm的详细过程

    基于 Docker 搭建 Anythingllm的详细过程

    本文详细介绍了如何在本地Windows 11企业版上使用Docker搭建和部署Anythingllm,包括Ollama和Docker的安装步骤,以及配置和使用Anythinllm的具体方法,感兴趣的朋友一起看看吧
    2025-03-03
  • Docker启动容器后自动关闭问题解决

    Docker启动容器后自动关闭问题解决

    在使用Docker创建并启动mysql容器时,发现mysql容器并没有启动而是自动关闭了,本文主要介绍了Docker启动容器后自动关闭问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2024-07-07
  • Docker中的容器资源限制解读

    Docker中的容器资源限制解读

    文章介绍了Docker中限制容器资源的方法,包括通过--cpuset-cpus指定CPU核心、--cpu-shares调整调度优先级(如512低于默认1024),以及--memory限制内存大小,最后说明了如何验证这些配置
    2025-09-09
  • Docker安装MySQL8.0的实现方法

    Docker安装MySQL8.0的实现方法

    这篇文章主要介绍了Docker安装MySQL8.0的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • windows下安装docker的教程详解

    windows下安装docker的教程详解

    这篇文章主要介绍了windows安装docker的教程,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • 使用docker-compose如何做nginx服务

    使用docker-compose如何做nginx服务

    这篇文章主要介绍了使用docker-compose如何做nginx服务问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • Docker系列之使用Docker Compose编排容器

    Docker系列之使用Docker Compose编排容器

    Docker Compose 是 Docker 容器进行编排的工具,定义和运行多容器的应用,可以一条命令启动多个容器,这篇文章主要介绍了Docker系列之使用Docker Compose编排容器,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • Docker部署Django应用的示例

    Docker部署Django应用的示例

    这篇文章主要介绍了Docker部署Django应用的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Docker跨主机容器通信overlay实现过程详解

    Docker跨主机容器通信overlay实现过程详解

    这篇文章主要介绍了Docker跨主机容器通信overlay实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Docker load之后镜像名字为none问题解决方法

    Docker load之后镜像名字为none问题解决方法

    这篇文章主要介绍了Docker load之后镜像名字为none问题解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论