You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nexus私有Docker仓库拉取镜像报manifest not found如何解决

故障排查与解决步骤

1 优先排查Docker认证上下文问题

虽然你执行了docker login登录成功,但docker-compose往往存在认证信息读取不到的情况:

  • 如果你使用sudo docker-compose up -d启动,root用户的/root/.docker/config.json中没有私有仓库的认证信息,相当于以匿名身份访问,触发401报错。可以先执行sudo docker login internal-registry.com:8335录入认证信息,再启动服务。
  • 建议将当前用户加入docker用户组,避免使用sudo执行Docker相关命令,消除权限差带来的认证问题:
    sudo gpasswd -a $USER docker
    newgrp docker
    

2 修正Nexus权限配置错误

你配置的匿名角色权限存在拼写错误:
你写的权限是nx-repository-view-*-*-*-broswe,正确的权限名为nx-repository-view-*-*-*-browse,拼写错误会导致权限不生效,匿名用户实际没有仓库读取/浏览权限,所以返回401后拉取失败。修正权限后等待1-2分钟生效再重新拉取。

3 确认镜像路径与仓库配置匹配

你当前拉取的镜像地址是internal-registry.com:8335/prometheus:latest,对应Nexus会默认访问library路径下的镜像(和服务端日志中的/v2/library/prometheus/一致),如果你的镜像存储路径不匹配就会找不到manifest:

  • 如果prometheus镜像存放在名为docker-hosted的私有托管仓库中,拉取地址需要改为internal-registry.com:8335/docker-hosted/prometheus:latest
  • 如果你使用的是DockerHub代理仓库,要确认Nexus服务器本身可以正常访问公网DockerHub,否则无法拉取缓存不存在的镜像

4 补充验证步骤

  • 先跳过docker-compose直接用原生Docker命令测试拉取:docker pull internal-registry.com:8335/prometheus:latest,如果同样报错说明是镜像库本身的配置问题,否则就是docker-compose的认证上下文问题
  • 登录Nexus UI,进入对应仓库的浏览页面,确认prometheus镜像的latest标签真实存在,避免标签写错导致manifest找不到
  • 检查Docker配置文件/etc/docker/daemon.json,确认已经添加私有仓库的非信任配置:
    {
      "insecure-registries": ["internal-registry.com:8335"]
    }
    
    配置完成后执行systemctl daemon-reload && systemctl restart docker重启Docker生效。

内容的提问来源于stack exchange,提问作者user4948798

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:06:04