You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Docker登录Nexus仓库报错求助:访问/v2/路径返回404 Not Found

这个问题我之前帮同事排查过,核心原因是你混淆了Nexus的控制台端口和Docker仓库的访问端口——8081是给Web管理界面用的,Docker客户端要连接的是专门配置的Docker仓库端点。按下面的步骤来解决:

解决步骤

1. 在Nexus控制台配置专属的Docker仓库

  • 登录你的Nexus控制台:http://192.168.33.60:8081/
  • 点击左侧菜单栏的Repository -> Repositories
  • 点击右上角的Create repository,选择docker (hosted)类型(如果是搭建私有仓库选hosted,代理公共镜像选proxy,整合多个仓库选group)
  • 填写关键配置:
    • Name:自定义一个仓库名,比如docker-private
    • HTTP:设置一个和8081不冲突的端口,比如8082(这就是后续Docker要连接的端口)
    • 其他选项按需调整,比如是否允许匿名拉取、是否开启推送权限等
  • 保存配置,确认仓库状态显示为Online

2. 验证Docker仓库端口的连通性

在要登录的虚拟机上,先测试端口是否能正常访问:

# 用curl测试v2接口是否存在
curl http://192.168.33.60:8082/v2/

如果返回{}或者类似的空JSON响应,说明接口已经正常运行了。

3. 用正确的地址执行docker login

现在用你刚才配置的Docker仓库端口登录:

docker login 192.168.33.60:8082

输入Nexus的用户名和密码(需要确保这个账号有该Docker仓库的访问权限,比如默认的nx-admin,或者你专门创建的有推送/拉取权限的用户),这时候应该就能成功登录了。

额外提醒

  • 如果你的Nexus是用Docker容器部署的,别忘了启动容器时映射这个新端口,比如加上参数:-p 8082:8082,否则外部虚拟机访问不到这个端口
  • 如果你不想单独开端口,也可以配置Docker仓库使用路径前缀(比如/docker),这时候登录地址是http://192.168.33.60:8081/docker,但这种方式需要额外调整Docker的insecure-registries配置,不如单独开端口直接方便

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

火山引擎 最新活动