Docker 无法从 Docker Hub 拉取镜像,通常是由于 网络连接问题 或 Docker Hub 访问受限 导致

这个错误表明 Docker 无法从 Docker Hub 拉取镜像,通常是由于 网络连接问题Docker Hub 访问受限 导致的。以下是几种解决方案:


解决方案

1. 检查网络连接

bash 复制代码
# 测试 Docker Hub 连通性
curl -I https://registry-1.docker.io/v2/

# 检查 DNS 解析
nslookup registry-1.docker.io

2. 配置 Docker 镜像加速器(推荐)

在中国Docker Hub 官方源可能被限制,建议配置镜像加速器:

编辑 Docker 配置文件:

bash 复制代码
sudo nano /etc/docker/daemon.json

添加以下内容(选择其中一个或多个加速器):

json 复制代码
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://docker.1panel.live",
    "https://hub.rat.dev",
    "https://docker.mirrors.ustc.edu.cn",
    "https://dockerpull.com",
    "https://docker.1panel.top",
    "https://docker.foreverlink.love"
  ]
}

重启 Docker:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart docker

3. 手动拉取镜像

配置加速器后,先单独拉取失败的镜像:

bash 复制代码
# 拉取失败的镜像
docker pull alpine/nikto:latest
docker pull zaproxy/zap-stable:latest
docker pull projectdiscovery/nuclei:latest

# 如果 alpine/nikto 找不到,尝试替代镜像
docker pull secfigo/nikto:latest

4. 修改 docker-compose 使用替代镜像

如果 alpine/nikto 镜像确实不存在或无法拉取,编辑 docker-compose.yml 修改镜像源:

yaml 复制代码
# 找到 nikto 服务部分,修改为:
  nikto:
    image: secfigo/nikto:latest  # 或其他可用镜像
    # 或者使用官方 Kali Linux 中的 nikto
    # image: kalilinux/kali-rolling:latest

5. 临时使用代理

如果你有 HTTP 代理:

bash 复制代码
# 设置环境变量
export HTTP_PROXY=http://your-proxy:port
export HTTPS_PROXY=http://your-proxy:port

# 然后重新运行
make start

6. 检查防火墙/安全软件

bash 复制代码
# 检查防火墙状态
sudo ufw status
sudo iptables -L

# 临时关闭防火墙测试(谨慎操作)
sudo ufw disable

快速排查步骤

bash 复制代码
# 1. 验证 Docker 是否正常运行
docker info

# 2. 测试拉取一个简单的镜像
docker pull hello-world

# 3. 如果上面成功,尝试拉取失败的特定镜像
docker pull alpine/nikto:latest

# 4. 查看详细错误信息
docker pull alpine/nikto:latest 2>&1

如果问题持续

请提供以下信息以便进一步诊断:

bash 复制代码
# 查看 Docker 版本
docker version

# 查看系统信息
uname -a

# 测试网络连通性
ping -c 4 128.242.245.244
curl -v https://registry-1.docker.io/v2/

最可能的解决方案是配置 Docker 镜像加速器(方案2),这通常能解决中国大陆访问 Docker Hub 的问题。

相关推荐
allnlei2 小时前
s6-overlay - 装在 Docker 容器里的轻量级管家
java·docker·容器
一技安身7 小时前
【Docker】 镜像导出 & 导入,实验环境aarch64(arm64)Linux操作系统
linux·docker·容器
鹤落晴春11 小时前
【K8s】从 ConfigMap 到 Argo CD:Kubernetes 配置管理链路
运维·云原生·容器·kubernetes
ezreal_pan12 小时前
Pod 重启多场景复盘:OOM、日志阻塞、并发 map 读写导致程序崩溃
docker·k8s
玉宇夕落13 小时前
Docker + Milvus,数据库永久存放记忆,让对话历史永不丢失
数据库·docker·llm
名字还没想好☜16 小时前
Docker 镜像瘦身进阶:用 distroless/scratch 把 Go 服务打到 10MB,以及没 shell 怎么调试
运维·docker·容器·golang·kubernetes
JavaPub-rodert16 小时前
Docker 深入理解:从容器原理到生产环境最佳实践
运维·docker·容器
暖核18 小时前
Docker 入门|吃透容器生态与底层原理
运维·docker·容器
滕州市燕猫虎计算机科技工作室个体工商户18 小时前
Docker常用命令
运维·docker·容器
wdfk_prog19 小时前
lely-canopen-rtt:为什么推荐在 RT-Thread 上使用 Lely CANopen 构建主站
java·运维·缓存·docker·容器