> 技术文档 > docker 报错Error response from daemon: Get “https://registry-1.docker.io/v2/“: EOF

docker 报错Error response from daemon: Get “https://registry-1.docker.io/v2/“: EOF

#!/bin/bash# Docker Registry EOF 错误修复脚本# 适用于: Error response from daemon: Get \"https://registry-1.docker.io/v2/\": EOF# 1. 检查网络连接echo \"=== 网络连接测试 ===\"ping -c 4 registry-1.docker.io || echo \"无法连接到 registry-1.docker.io\"# 2. 检查 DNS 解析echo -e \"\\n=== DNS 解析测试 ===\"dig registry-1.docker.io +short || echo \"DNS 解析失败\"# 3. 检查防火墙设置echo -e \"\\n=== 防火墙检查 ===\"sudo ufw status | grep \"Status: active\" && { echo \"防火墙已启用,检查443端口是否开放\" sudo ufw allow 443/tcp sudo ufw reload}# 4. 检查代理设置echo -e \"\\n=== 代理配置检查 ===\"if [ -f /etc/systemd/system/docker.service.d/http-proxy.conf ]; then echo \"检测到代理配置:\" cat /etc/systemd/system/docker.service.d/http-proxy.conf echo \"尝试暂时禁用代理...\" sudo mv /etc/systemd/system/docker.service.d/http-proxy.conf /etc/systemd/system/docker.service.d/http-proxy.conf.bakfi# 5. 检查 MTU 设置echo -e \"\\n=== MTU 设置检查 ===\"current_mtu=$(ip link show docker0 | awk \'/mtu/{print $5}\')echo \"当前 docker0 MTU: $current_mtu\"if [ $current_mtu -gt 1500 ]; then echo \"尝试降低 MTU 值...\" sudo ip link set dev docker0 mtu 1500fi# 6. 重启 Docker 服务echo -e \"\\n=== 重启 Docker 服务 ===\"sudo systemctl daemon-reloadsudo systemctl restart docker# 7. 测试 Docker 连接echo -e \"\\n=== 测试 Docker Hub 连接 ===\"docker pull hello-world && { echo \"连接成功!\" docker run --rm hello-world} || { echo \"连接失败,尝试其他解决方案...\" # 8. 更换镜像源 echo -e \"\\n=== 尝试使用阿里云镜像源 ===\" sudo tee /etc/docker/daemon.json <<-\'EOF\'{ \"registry-mirrors\": [\"https://.mirror.aliyuncs.com\"]}EOF sudo systemctl daemon-reload sudo systemctl restart docker docker pull hello-world}# 9. 恢复代理设置(如果存在)if [ -f /etc/systemd/system/docker.service.d/http-proxy.conf.bak ]; then echo -e \"\\n=== 恢复代理设置 ===\" sudo mv /etc/systemd/system/docker.service.d/http-proxy.conf.bak /etc/systemd/system/docker.service.d/http-proxy.conf sudo systemctl daemon-reload sudo systemctl restart dockerfiecho -e \"\\n修复脚本执行完成!如果问题仍未解决,请检查网络环境或联系网络管理员。\"

使用说明

  1. 将脚本保存为 fix_docker_registry_error.sh
  2. 添加执行权限:
    chmod +x fix_docker_registry_error.sh
  3. 以管理员权限运行:
    sudo ./fix_docker_registry_error.sh
  4. 按照脚本提示操作

此脚本会逐步诊断并修复 Docker 连接问题,最后会尝试拉取 hello-world 镜像验证修复效果。如果使用阿里云镜像源,请替换  为您的专属镜像地址(可在阿里云容器镜像服务获取)。