系统相关
首页 > 系统相关> > Sonatype Nexus3 搭建私有仓库

Sonatype Nexus3 搭建私有仓库

作者:互联网

Nexus是Sonatype提供的仓库管理平台,Nuexus Repository OSS3能够支持Maven、npm、Docker、YUM、Helm等格式数据的存储和发布;并且能够与Jekins、SonaQube和Eclipse等工具进行集成。
Nexus支持作为宿主和代理存储库的本地Maven/Docker存储库,可以直接将这些存储库暴露给客户端工具;也可以以存储库组的方式暴露给客户端工具,存储库组是合并了多个存储库的内容的存储库,能够通过一个URL将多个存储库暴露给客户端工具,从而便于用户的使用。通过nexus自建能够有效减少访问获取镜像的时间和对带宽使用,并能够通过自有的镜像仓库共享企业自己的镜像。

SSL证书

需要 2 个域名,一个用来代理 Nexus管理面板,另一个用做 docker仓库,docker需要单独的端口

Nexus 前台:registry.jonty.top

Docker 仓库:hub.jonty.top

自签名证书

我们通过Nginx代理Nexus服务,需要先生成自签名的SSL证书,通过内部DNS域名访问(无需在docker pull的时候还要带一个端口)

使用一键生成工具:两个域名都要签发证书

# 克隆仓库 git clone https://github.com/Fishdrowned/ssl.git cd ssl # 根据你的域名更改 /bin/bash ./gen.cert.sh hub.jonty.top

PS:如果是打算做外网仓库服务,可以直接申请一个免费的SSL证书(云厂商都提供),本文使用内网域名,使用自签名证


 
[root@nexus3 ssl-master]# ls ca.cnf docs flush.sh gen.cert.sh gen.root.sh LICENSE out README.md [root@nexus3 ssl-master]# cd out/ [root@nexus3 out]# ls cert.key.pem index.txt index.txt.attr index.txt.attr.old index.txt.old newcerts root.crt root.key.pem serial serial.old [root@nexus3 out]# cd .. [root@nexus3 ssl-master]# /bin/bash gen.cert.sh hub.jonty.top # 换成你的域名 Using configuration from ./ca.cnf Check that the request matches the signature Signature ok The Subject's Distinguished Name is as follows countryName :PRINTABLE:'CN' stateOrProvinceName :ASN.1 12:'Guangdong' localityName :ASN.1 12:'Guangzhou' organizationName :ASN.1 12:'Fishdrowned' organizationalUnitName:ASN.1 12:'hub.jonty.top' commonName :ASN.1 12:'*.hub.jonty.top' Certificate is to be certified until Jul 11 08:06:41 2024 GMT (730 days) Write out database with 1 new entries Data Base Updated Certificates are located in: lrwxrwxrwx. 1 root root 44 Jul 12 16:06 /root/docker/ssl-master/out/hub.jonty.top/hub.xxx.bundle.crt -> ./20220712-1606/hub.jonty.top.bundle.crt lrwxrwxrwx. 1 root root 37 Jul 12 16:06 /root/docker/ssl-master/out/hub.jonty.top/hub.xxx.crt -> ./20220712-1606/hub.jonty.top.crt lrwxrwxrwx. 1 root root 15 Jul 12 16:06 /root/docker/ssl-master/out/hub.jonty.top/hub.xxx.key.pem -> ../cert.key.pem lrwxrwxrwx. 1 root root 11 Jul 12 16:06 /root/docker/ssl-master/out/hub.jonty.top/root.crt -> ../root.crt [root@nexus3 ssl-master]# cd out/hub.jonty.top/ [root@nexus3 hub.jonty.top]# ls 20220712-1606 hub.jonty.top.bundle.crt hub.jonty.top.crt hub.jonty.top.key.pem root.crt

阿里云签发

如果有域名,可以购买Aliyun免费ssl证书,一年有效期,可以有效避免自签名证书不适用的问题

申请完成后,下载Nginx证书并上传到服务器

本地域名解析

Windows:C:\Windows\System32\drivers\etc\hosts

Linux:vi /etc/hosts

将以下解析加入,测试是否可以ping

192.168.2.xx hub.jonty.top 192.168.2.xx registry.jonty.top

部署

环境准备

安装Docker-Engine

[root@nexus3 ~]# docker -v Docker version 20.10.17, build 100c701 [root@nexus3 ~]# docker compose version Docker Compose version v2.6.0

创建数据路径并设置权限

mkdir -p $PWD/nexus3/data chmod 777 $PWD/nexus3/data cd $PWD/nexus3

将生成的证书复制$PWD/nexus3/certs目录下(2个域名的证书都需要)

[root@nexus3 hub.jonty.top]# cp hub.jonty.top.crt ~/nexus3/certs/ [root@nexus3 hub.jonty.top]# cp hub.jonty.top.key.pem ~/nexus3/certs/ [root@nexus3 hub.jonty.top]# cd ~/nexus3/certs/ [root@nexus3 certs]# ls hub.jonty.top.crt hub.jonty.top.key.pem

标签:nexus,Sonatype,管理,数据,数据库,SSL,域名
来源: