Nexus 搭建私有 Docker 镜像仓库完全指南:从创建仓库到推送镜像
引言在掌握 Docker 基础使用并且会推送镜像到公共仓库之后团队内部通常需要搭建私有镜像仓库来存储和管理自己构建的镜像。Nexus 是一个流行的仓库管理工具支持多种仓库类型包括 Docker。本节课将详细讲解如何在 Nexus 中创建私有 Docker 仓库并完成从登录到推送镜像的完整实操步骤。核心内容在 Nexus 中创建 Docker 私有镜像仓库创建仓库步骤进入 Nexus 管理界面的仓库管理页面新建仓库选择Docker hosted类型用于存储我们自己推送的 Docker 镜像命名仓库后选择之前创建好的 blob 存储保留其余默认配置即可创建完成。仓库信息配置项值Namedocker-hostedFormatdockerTypehostedURLhttp://157.230.22.19:8081/repository/docker-hosted/权限配置需要为访问该仓库创建专用角色新建角色NX Docker添加docker-hosted仓库访问权限普通用户使用View权限即可。将该角色赋予已有用户完成权限配置。Docker 仓库网络配置配置 HTTP 连接器Docker 客户端无法直接访问带路径的仓库 URL 端点如http://IP:8081/repository/docker-hosted/需要为 Docker 仓库单独分配一个独立端口。由于本次使用 HTTP 非加密连接需要勾选开启 HTTP 连接器设置一个不同于 Nexus 主端口的独立端口示例中使用8083保存配置后Nexus 服务器会开放该端口监听 Docker 客户端请求。开放防火墙端口需要在云服务器防火墙示例中为 DigitalOcean Droplets 防火墙中放开配置的 8083 端口否则外部 Docker 客户端无法访问该仓库。验证端口监听可以通过netstat -lnpt命令验证端口是否正常监听rootubuntu-s-4vcpu-8gb-fra-1-01:~# netstat -lnpt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8083 0.0.0.0:* LISTEN 1639/java tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 1639/javaNexus 服务端额外配置启用 Docker Bearer Token RealmDocker 登录后 Nexus 需要颁发认证令牌给客户端存储。默认该 Realm 是未激活状态需要在Realms设置中激活Docker Bearer Token Realm后保存配置。不激活该 Realm 会导致 Docker 登录失败这是常见配置错误点。Docker 客户端配置配置不安全镜像仓库Docker 客户端默认只允许连接 HTTPS 加密的镜像仓库由于我们的 Nexus 使用 HTTP 连接需要将仓库地址添加到不安全仓库白名单Linux 系统直接编辑/etc/docker/daemon.json添加insecure-registries配置项。Docker DesktopMac/Windows进入设置 → Docker Engine添加配置后点击Apply restart重启 Docker。{ builder: { gc: { defaultKeepStorage: 20GB, enabled: true } }, experimental: false, insecure-registries: [157.230.22.19:8083], features: { buildkit: true } }登录并推送镜像Docker 登录重启 Docker 后执行docker login命令传入仓库地址IP端口输入分配了权限的 Nexus 用户名密码% docker login 157.230.22.19:8083 Username: nana Password: Login Succeeded登录成功后Docker 会在本地~/.docker/config.json保存认证令牌后续操作无需重复登录。推送镜像的正确步骤本地构建镜像docker build -t my-app:1.0 .重新打标签将镜像标记为私有仓库地址格式隐式指定推送目标。docker tag my-app:1.0 157.230.22.19:8083/my-app:1.0注意标签格式错误如多一个斜杠会导致格式报错正确格式为[仓库地址]/[镜像名]:[标签]。执行推送docker push 157.230.22.19:8083/my-app:1.0推送结果验证推送完成后进入 Nexus 的Browse界面可以看到镜像的分层存储结构v2/ ├── blobs/ # 镜像层数据sha256 哈希命名 └── my-app/ ├── manifests/ # 镜像元数据 └── tags/1.0 # 标签信息Docker 镜像的每一层都会作为单独的资产存储不同镜像可以复用相同层这就是 Docker 分层存储的优势。通过 Nexus API 查询镜像信息可以通过 curl 调用 Nexus API 获取仓库中的镜像列表和元信息curl -u nana:password http://157.230.22.19:8081/service/rest/v1/search?repositorydocker-hosted返回结果为 JSON 格式包含镜像 ID、名称、版本、资产信息、校验和等完整元数据。总结本节课完成了在 Nexus 中搭建私有 Docker 镜像仓库的完整流程创建仓库选择Docker hosted类型命名并配置 blob 存储。权限配置创建NX Docker角色为仓库添加访问权限并赋予用户。网络配置为 Docker 仓库配置独立端口如 8083开放防火墙验证端口监听。Realm 激活启用Docker Bearer Token Realm以支持认证令牌颁发。客户端配置将 HTTP 仓库地址添加到 Docker 不安全仓库白名单重启 Docker。登录与推送执行docker login重新打标签格式为[仓库地址]/[镜像名]:[标签]执行docker push。验证在 Nexus 界面查看镜像分层存储结构或通过 API 查询元数据。

相关新闻

SD-PPP:3步打造Photoshop终极AI创作工作流

SD-PPP:3步打造Photoshop终极AI创作工作流

SD-PPP:3步打造Photoshop终极AI创作工作流 【免费下载链接】sd-ppp A Photoshop AI plugin 项目地址: https://gitcode.com/gh_mirrors/sd/sd-ppp 在数字创意领域,设计师们长期面临着一个技术断层:Photoshop作为专业图像处理工具&…

2026/9/28 15:10:09 阅读更多 →
Docker 卷实现 MongoDB 数据持久化:从零搭建 Node.js + MongoDB 演示环境

Docker 卷实现 MongoDB 数据持久化:从零搭建 Node.js + MongoDB 演示环境

引言默认情况下,MongoDB 容器重启或重建后,所有数据库数据都会丢失。核心目标是让数据库数据保留在宿主机,不受容器生命周期影响。本节课将基于一个简单的 Node.js MongoDB 应用,实操演示如何使用 Docker 卷(Volume&a…

2026/9/24 23:53:11 阅读更多 →
C++从零构建3D沙盒游戏核心框架:OpenGL渲染与区块管理实战

C++从零构建3D沙盒游戏核心框架:OpenGL渲染与区块管理实战

1. 项目缘起:从“复制”到“理解”的游戏开发之旅最近在社区里,看到不少朋友在搜索“我的世界 免费代码”、“迷你世界 可复制代码”这样的关键词,尤其是带着“C”这个标签。我完全理解这种心情——当你对《我的世界》(Minecraft&…

2026/9/26 6:33:23 阅读更多 →

最新新闻

需求分析报告编写规范:用Java实现docx章节结构自动校验

需求分析报告编写规范:用Java实现docx章节结构自动校验

简介:本资源以中国国防科学技术报告为规范范例,提供《需求分析报告》编写格式与内容要求的完整参考,面向软件项目管理者、需求分析人员及文档编写者,用于统一报告结构、提升需求文档规范性与完整性。压缩包内共1个docx文档&#x…

2026/10/4 13:50:02 阅读更多 →
Remote In Tech 公司档案实战解析:以 Nettl Edinburgh(nettl-edinburgh.md)为例

Remote In Tech 公司档案实战解析:以 Nettl Edinburgh(nettl-edinburgh.md)为例

数据集 【免费下载链接】remote-jobs Source for remoteintech.company — a community-maintained directory of remote-friendly tech companies 项目地址: https://gitcode.com/GitHub_Trending/re/remote-jobs 点击查看 免费下载 本篇技术指南以 remoteintech.…

2026/10/4 13:50:02 阅读更多 →
BepInEx 安装教程:下载 + 解压 + 启动 3 步挂上插件框架,Unity 游戏 Mod 随装随跑

BepInEx 安装教程:下载 + 解压 + 启动 3 步挂上插件框架,Unity 游戏 Mod 随装随跑

BepInEx 安装教程:下载 解压 启动 3 步挂上插件框架,Unity 游戏 Mod 随装随跑 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 你下载了一个 Mod&#xff…

2026/10/4 13:50:02 阅读更多 →
EasyDarwin 跨平台机器码获取指南:基于 machine-code 实现 PlatformUUID、主板序列号与精准 IP 采集

EasyDarwin 跨平台机器码获取指南:基于 machine-code 实现 PlatformUUID、主板序列号与精准 IP 采集

音视频后端直播视频 【免费下载链接】EasyDarwin open source、high performance、industrial rtsp streaming server,a lot of optimization on streaming relay,KeyFrame cache,RESTful,and web management,also EasyDarwin support distributed load balancing,a simple str…

2026/10/4 13:50:02 阅读更多 →
RISC-V入门必读:base ISA与ABI寄存器约定详解

RISC-V入门必读:base ISA与ABI寄存器约定详解

1. 从零上手 RISC-V:为什么 base ISA 和 ABI 寄存器约定是绕不开的第一道坎接触 RISC-V 的人,十有八九是从一块开发板或者一个模拟器开始的。你可能已经跑通了第一个裸机程序,或者用工具链编译了一个简单的 C 程序烧进去,看着串口…

2026/10/4 13:50:02 阅读更多 →
工业级嵌入式数据存储:MRAM与8位MCU的可靠组合

工业级嵌入式数据存储:MRAM与8位MCU的可靠组合

1. 项目概述:为什么在工业现场还要用MR25H40CDF配PIC18F85K22做数据存储?MR25H40CDF和PIC18F85K22这两个芯片组合,乍看像是从十年前的BOM清单里翻出来的老物件——一个4Mb串行磁阻RAM(MRAM),一个带硬件SPI模…

2026/10/4 13:49:02 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 11:40:45 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 9:43:54 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →