关于Docker拉取镜像超时/无法访问镜像仓库解决方案

文章目录

关于Docker拉取镜像超时/无法访问镜像仓库解决方案

我今天安装Docker后无论是配置阿里云镜像源或是按照网上以及ai说的配置dns、防火墙、关闭ipv6等方法都无法成功拉取镜像

进行docker login、通过curl命令访问docker镜像仓库也是一律超时或拒绝访问,在我捣鼓了一个下午后终于成功找到解决方法。下面我将针对使用代理的用户以及不使用代理的用户分别给出解决方案

卸载原先安装的Docker及相关配置

bash 复制代码
# 1. 停止所有Docker容器和守护进程
sudo systemctl stop docker.socket docker.service containerd
sudo pkill -f docker

# 2. 卸载Docker软件包
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# 3. 删除残留数据和配置
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/apt/sources.list.d/docker*.list

# 4. 删除代理配置文件(之前配置的)
sudo rm -rf /etc/systemd/system/docker.service.d/http-proxy.conf
sudo systemctl daemon-reload

# 5. 清理APT缓存
sudo apt autoremove -y
sudo apt clean

使用代理后无法拉取镜像解决方案

验证代理连通性

bash 复制代码
curl -I -x http://127.0.0.1:7890 https://hub.docker.com   # 通过代理测试能否访问 Docker Hub

如果能返回 HTTP 200/301 等响应,则表示代理连通正常。若以上命令失败,可尝试先导出环境变量后再测试:

bash 复制代码
export http_proxy="http://127.0.0.1:7890" # 使用环境变量中的代理访问,注意改成自己的!!!
curl -I https://hub.docker.com   

安装 Docker 最新版

bash 复制代码
sudo apt-get remove -y docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc  # 卸载旧版 Docker 及冲突软件
sudo apt-get update   # 更新软件包索引
sudo apt-get install -y ca-certificates curl gnupg lsb-release  # 安装必要工具

# 添加 Docker 官方 GPG 密钥并新建 Apt 仓库 keyrings 目录
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc  # 获取 Docker GPG 密钥
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 Docker 官方 apt 软件源(Ubuntu 24.04 代号为 noble)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list  

sudo apt-get update  # 更新仓库索引
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  # 安装 Docker 引擎及相关组件

配置 Docker Daemon HTTP 代理

注意下方将代理地址全都改为自己的,我这里使用的是http://127.0.0.1:7890

bash 复制代码
sudo mkdir -p /etc/systemd/system/docker.service.d   # 创建 docker.service 的 drop-in 目录
# 编辑 /etc/systemd/system/docker.service.d/http-proxy.conf,添加以下内容:
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF

上述配置将 Docker 守护进程的 HTTP/HTTPS 代理都指向 127.0.0.1:7890,并在 NO_PROXY 中排除本地地址​​

。保存后执行以下命令使配置生效

bash 复制代码
sudo systemctl daemon-reload   # 重新加载 systemd
sudo systemctl restart docker  # 重启 Docker 

重启后,可用下面命令查看代理环境变量是否已被加载:

bash 复制代码
sudo systemctl show --property=Environment docker  # 查看 Docker 服务的环境变量

若输出中包含类似 HTTP_PROXY=http://127.0.0.1:7890 字样,则表示代理配置已生效

重启验证与拉取镜像

bash 复制代码
sudo docker run hello-world  # 运行官方测试镜像确认安装成功

成功啦!!!

不使用代理解决方案

安装 Docker 最新版

bash 复制代码
sudo apt-get remove -y docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc  # 卸载旧版 Docker 及冲突软件
sudo apt-get update   # 更新软件包索引
sudo apt-get install -y ca-certificates curl gnupg lsb-release  # 安装必要工具

# 添加 Docker 官方 GPG 密钥并新建 Apt 仓库 keyrings 目录
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc  # 获取 Docker GPG 密钥
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加 Docker 官方 apt 软件源(Ubuntu 24.04 代号为 noble)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list  

sudo apt-get update  # 更新仓库索引
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin  # 安装 Docker 引擎及相关组件

配置阿里云容器镜像加速

阿里云容器镜像服务控制台获取专属加速地址

阿里云镜像连接https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

复制下方命令在命令行输入

bash 复制代码
ll /etc/docker

出现这行即配置完成

相关推荐
Patrick_Wilson2 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
Suroy2 天前
DockerView-Go:用 Go 写一个终端 Docker 监控工具,顺便做了个 Web 仪表盘
docker
云恒要逆袭2 天前
运行你的第一个Docker容器
后端·docker·容器
宋均浩3 天前
# Docker 镜像瘦身实战:从 1.2G 到 80MB 的五个优化步骤
ci/cd·docker
程序员老赵4 天前
10 分钟部署 OpenCode:Docker 一键安装,浏览器打开就能用 AI 写代码(附完整命令与排错)
docker·容器·ai编程
WangMingHua1114 天前
LM Studio Docker 部署——本地大模型一键启动
docker
曲幽5 天前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
武子康7 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn8610 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
JLWcai2025100910 天前
铸造领域树脂砂轮|金利威多场景解决方案,20 + 配方覆盖全需求
mongodb·zookeeper·eureka·spark·rabbitmq·memcached·storm