Docker Hub镜像Pull失败的解决全过程
作者:lijiachang030718
文章解决Ubuntu环境下Docker拉取镜像失败问题,分析网络限制、DNS污染及下载速度慢等原因,提出配置国内镜像加速器的解决方案,包括编辑daemon.json并重启Docker服务
引言
在云原生技术火热的当下,Docker可谓是其基础,由于其简单以及方便性,让开发人员不必再为环境配置问题而伤脑筋,因为可将其看作一个虚拟机程序去理解。所以掌握好它可谓是很重要的事情,本文章将解决作者使用Docker时,遇到的一个基础问题,这也是困扰了很多人的问题,在此写篇文章分享给大家。
一、问题
在Ubuntu Linux环境下,docker pull ubuntu:20.04
会报错或卡住(或其它镜像),没办法从Docker Hub
下载镜像。
二、原因
- 网络限制:Docker Hub 的服务器位于国外(registry-1.docker.io),某些地区可能因网络策略(如防火墙、国际带宽限制)导致连接超时或阻断。
- DNS 污染:部分网络环境中,Docker Hub 的域名解析可能被干扰,无法获取正确的 IP 地址。
- 下载速度慢:即使能连接,国际带宽的延迟和限速也会导致下载耗时过长甚至失败。
三、解决方法
概括:配置国内镜像加速器
vim /etc/docker/daemon.json
,没有则自行创建- 将下面文本覆盖到上述文件中
{ "registry-mirrors": [ "https://2a6bf1988cb6428c877f723ec7530dbc.mirror.swr.myhuaweicloud.com", "https://docker.m.daocloud.io", "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://your_preferred_mirror", "https://dockerhub.icu", "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" ] }
- 重新加载docker配置文件
systemctl daemon-reload
- 重启docker服务
systemctl restart docker.service
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。