news 2026/6/21 23:27:13

使用nexus3搭建自己的制品服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用nexus3搭建自己的制品服务器

使用nexus3搭建自己的制品服务器

需求

云原生开发,有个新的需求,就是docker制品服务器,对于私域的开发,公有云的服务器不合适,只能自己搭建了。

所以记录一下搭建一个docker镜像服务器的过程,完成的功能如下:

  1. 存储私有的docker制品,所有有上传下载功能(pull,push)
  2. 代理开源的共有源镜像(dockerhub)
  3. 读写权限分开

使用nexus3大家私服过程

nexus3是目前最全面的私服软件了,支持apt、npm、docker、cargo、go、maven、composer……
这次只使用其docker功能。

使用docker搭建nexus3,并使用caddy作为代理:
nexus3的配置:

services:nexus3:image:sonatype/nexus3:latestcontainer_name:nexus3environment:-TZ=Asia/Shanghai-INSTALL4J_ADD_VM_PARAMS="-Xms2703m-Xmx4G-XX:MaxDirectMemorySize=2703m-Djava.util.prefs.userRoot=/userroot"-NEXUS_CONTEXT=nexusvolumes:-./data:/nexus-data-./userroot:/userrootrestart:alwaysnetworks:default:external:trueenable_ipv6:falsename:netproxy

caddy的配置:

services:caddy:image:caddy:2restart:unless-stoppedcontainer_name:caddycap_add:-NET_ADMINenvironment:-TZ=Asia/Shanghaiports:-"80:80"-"8080:8080"-"443:443"-"443:443/udp"-"1443:1443"-"1443:1443/udp"volumes:-$PWD/conf:/etc/caddy-$PWD/site:/srv-$PWD/config:/config-$PWD/data:/datanetworks:-netproxynetworks:netproxy:name:netproxydriver:bridge

caddy配置文件:

{email Little-baby@163.com acme_ca https://acme.zerossl.com/v2/DV90}nexus.aaa.bbb{redir / /nexus 301 reverse_proxy nexus3:8081encode gzip header Cache-Control "public,max-age=3600" header{Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" X-Content-Type-Options "nosniff" X-XSS-Protection "1; mode=block"}}docker.aaa.bbb:1443{reverse_proxy nexus3:8082}docker.aaa.bbb{reverse_proxy nexus3:8084}

搭建支持上传下载的docker私服

nexus3第一次启动后,需要修改密码,如下图:

修改密码后,后续会提示是否开通匿名访问,关闭。

新建一个host的docker repository

目录: settings->repository->create repository

新建一个支持上传下载的角色和用户
  1. 新建角色

并且赋权刚刚创建的host仓库给这个角色。

  1. 新建用户

新建用户,并且赋角色

  1. security realms

安全配置:

验证读写

# docker 登录dockerlogin docker.aaa.bbb:1443-udwrite# 测试上传dockertag caddy:2 docker.aaa.bbb:1443/myimage:2dockerpush docker.aaa.bbb:1443/myimage:2

上传后就可以看到上传的镜像:

搭建dockerhub 代理

代理dockerhub:

修改端口、索引:

设置清理措施:

代理镜像位于dockerhub,代理服务器只需要缓存,并不需要长久存储,指定一个释放策略可以减少服务器硬盘占用。

创建清理策略:

给代理仓库加载清理策略:

搭建融合镜像

仓库组,用来合并多个hosted/proxy仓库,即将私服和公开的hub代理,合并为一个,方便使用:

设置合并的仓库,并设置顺序,host在前,代理在后:

新建一个新只读角色、只读用户,赋权限,所有仓库的只读权限:

角色:

用户:

权限:

测试
  1. 拉取一个私服里面的镜像
  2. 拉取一个dockerhub里面的镜像
# 登录dockerlogin docker.aaa.bbb-udread# 拉取私服的镜像dockerrmi docker.aaa.bbb/myimage:2# 拉取dockerhub的镜像dockerpull docker.aaa.bbb/alpine

查看,dockerhu的也会被缓存下来:

学习小结:

至此,一个可用的权限分离的docker私服就实现了。nexus3一共有4个服务端口:

8081:可以通过http访问nexus应用
8082:docker(hosted)私有仓库,可以pull和push
8083:docker(proxy) 代理dockerhub,只能pull
8084:docker(group) 私有仓库和代理的组,只能pull

nexus3还有很多的私服功能,下次再开发_

微信公众号:
使用nexus3搭建自己的制品服务器

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/21 3:45:40

Python爬虫实战:基于异步技术的大宗商品期货交易数据爬取与趋势分析

引言:期货数据爬虫的重要性与挑战 在当今数字化金融时代,期货市场交易数据已成为投资者、分析师和研究人员进行大宗商品价格趋势分析的关键资源。期货数据不仅反映了市场供需关系,还包含了宏观经济、政策变化和全球事件的影响。然而,获取高质量、实时的期货交易数据面临着…

作者头像 李华
网站建设 2026/6/22 5:18:17

46、Linux使用指南:从基础到高级的全面攻略

Linux使用指南:从基础到高级的全面攻略 一、Linux基础概念 1.1 “Free”的含义 在特定语境中,“free”指的是自由或自主,而非价格层面的免费。这种区别在相关介绍中会有详细解释。 1.2 Unix的起源 “Unix”最初写作“Unics”,代表“Uniplex Information and Computing…

作者头像 李华
网站建设 2026/6/22 8:36:17

LobeChat能否用于生成广告语?品牌传播创意工厂

LobeChat能否用于生成广告语?品牌传播创意工厂 在品牌营销的战场上,一句精准有力的广告语,往往能撬动千万级的市场认知。然而,传统创意流程依赖少数“天才文案”,不仅成本高昂,且难以规模化响应快速变化的消…

作者头像 李华
网站建设 2026/6/22 12:04:12

Windows下TensorFlow 2.5 GPU环境配置指南

Windows下TensorFlow 2.5 GPU环境配置实战指南 在深度学习项目中,训练一个大型模型动辄需要数小时甚至几天。如果你还在用CPU跑TensorFlow,那可能连“调参侠”的门槛都还没迈进去——等你调完一组超参数,别人已经跑完三轮实验了。 真正高效…

作者头像 李华
网站建设 2026/6/22 23:02:46

一键 i18n 国际化神库!适配 Vue、React!

一键 i18n 国际化神库!适配 Vue、React! 作为一名前端开发,给项目做多语言早已是家常便饭。 可每次面对成百上千条文案,“一行行手动翻译 维护 N 个 JSON 文件”仍然是让人头秃的体力活。 今天就把我实测有效的 3 款零入侵、一…

作者头像 李华
网站建设 2026/6/22 20:43:12

LobeChat能否用于创建商业模式画布?创业项目策划助手

LobeChat:打造你的AI创业策划助手 在今天这个“人人都是产品经理”的时代,一个绝妙的创意可能诞生于咖啡馆的一次闲聊,也可能来自深夜灵光乍现的备忘录。但真正让想法落地的,不是灵感本身,而是如何快速、系统地把它转化…

作者头像 李华