Centos7下Nexus3的安装和配置
1、要使用nexus服务需要安装jdk和maven
1.1、jdk下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
rpm -ivh jdk-8u221-linux-x64.rpm
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version
1.2、maven下载地址:https://maven.apache.org/download.cgi
tar -zxvf apache-maven-3.6.1-bin.tar.gz
vi /etc/profile
export PATH=$PATH:/usr/local/maven/bin
source /etc/profile
mvn -v
2、安装nexus
下载地址:https://www.sonatype.com/nexus-repository-oss,点击首页大广告图,跳转后填写邮箱,点击,download,网页跳转后,选择 nexus repository manager oss 3.x - unix,下载最新安装包。
下载地址:https://help.sonatype.com/repomanager2/download/download-archives---repository-manager-oss
或者打开网址:https://my.sonatype.com/ 在 Latest Releases 标签下, 下载最新nexus repository安装包
wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
tar -zxvf nexus-3.18.1-01-unix.tar.gz
#解压后又2个目录
#nexus-3.18.1-01:包含了 Nexus 运行所需要的文件。是 Nexus 运行必须的
#sonatype-work:包含了 Nexus 生成的配置文件、日志文件、仓库文件等。当我们需要备份 Nexus 的时候默认备份此目录即可
#修改环境变量
vi /etc/profile
export NEXUS_HOME=/usr/local/nexus/nexus-3.18.1
export PATH=$PATH:$NEXUS_HOME/bin
source /etc/profile#修改启动用户
vi /usr/local/nexus/nexus-3.18.1/bin/nexus.rc
#run_as_user="" #内容就这一行,放开注释,填写用户即可#修改端口
vi /usr/local/nexus/nexus-3.18.1/etc/nexus-default.properties #默认是8081
#最后启动nexus
cd /usr/local/nexus/nexus-3.18.1/bin
./nexus start
./nexus status
#访问http://ip:8081,
登陆用户admin 密码存放在:/usr/local/nexus/sonatype-work/nexus3/admin.password 目录
#开机自启动
vi /etc/rc.d/rc.local/usr/local/nexus/nexus-3.18.1/bin/nexus start
#添加这一行内容
chmod 755 /etc/rc.d/rc.local
- docker安装nexus
查找镜像
docker search nexus
拉取镜像
docker pull sonatype/nexus3
查看镜像
docker images
创建nexus数据目录并授权
mkdir -p /home/nexus/nexus-data
chown 200 /home/nexus/nexus-data
创建并启动容器
将服务映射到了宿主机8088,将宿主机/home/nexus/nexus-data目录映射到容器/nexus-data目录
docker run -d -p 8088:8081 --name nexus --restart=always -v /home/nexus/nexus-data:/nexus-data sonatype/nexus3
查看容器
docker ps -a
如果容器成功启动就可以进入nexus后台了,访问如下网址(替换ip)
http://ip:8088
4.登录nexus
从3.17版本开始默认密码不再是admin123,密码是随机生成。首次登录页面会显示admin用户的密码在/nexus-data/admin.password,因为我们在创建容器时做了目录映射,所以进入宿主机查看密码。
cat /home/nexus/nexus-data/admin.password
得到的字符串即为密码,用户名为admin
如果容器启动失败可以查看log
docker logs -f nexus
Nexus 创建仓储
- 创建docker Repositories
点击齿轮 - Repositories - Create repository - 选择 docker (hosted)
Name: 仓库的名称
HTTP: 仓库单独的访问端口
Enable Docker V1 API: 如果需要同时支持 V1 版本请勾选此项(不建议勾选)。
Hosted -> Deployment pollcy: 请选择 Allow redeploy 否则无法上传 Docker 镜像。
其它的仓库创建方法请各位自己摸索,还可以创建一个 docker (proxy) 类型的仓库链接到 DockerHub 上。再创建一个 docker (group) 类型的仓库把刚才的 hosted 与 proxy 添加在一起。主机在访问的时候默认下载私有仓库中的镜像,如果没有将链接到 DockerHub 中下载并缓存到 Nexus 中。
编写信息完成后选择“Create repository”按钮
安全设置
官方介绍:https://help.sonatype.com/repomanager3/formats/docker-registry/authentication
点击Realms菜单 - 把 Docker Bearer Token Realm 移到右边的框中点击Save保存。
添加用户规则:菜单 Security->Roles->Create role 在 Privlleges 选项搜索 docker 把相应的规则移动到右边的框中然后保存。
添加用户:菜单 Security->Users->Create local user 在 Roles 选项中选中刚才创建的规则移动到右边的窗口保存。
搭建 docker-registry 私有库,也可以使用上面创建的
搜索docker-registry镜像
docker search registry
拉取docker.io/registry镜像
// 随便拉取了一个指定版本,也可以拉取下来
docker pull docker.io/registry:2.3.1
// 获取一个最新的版本,只要网络畅通,基本上都能获取下来
docker pull docker.io/registry
// 查看我们拉取的镜像是否都已经存在本地了
docker images
//将下面内容加到配置文件中
"insecure-registries":["192.168.237.152:5000"]
systemctl daemon-reload
systemctl restart docker
//查看设置是否生效
docker info
启动docker-registry
docker run -d -p 5000:5000 --restart=always -v /tmp/docker-var/:/var/lib/registry registry:2.3.1
// 通过 curl 命令测试, 正常情况能打印些东西出来
[root@svr01 ~]# curl http://my_host_ip:5000/v2
<a href="/v2/">Moved Permanently</a>.
// 通过浏览器输入 http://my_host_ip:5000/v2 地址试试,正常情况下回输出{}一个空的大括号内容。
上传测试镜像到镜像仓库中去
1.制作image
//拉取hello-world镜像作为示例
docker pull hello-world
//制作私有镜像
docker tag hello-world 192.168.237.152:5000/hello-world
2.推送到私有仓库
docker pull 192.168.237.152:8000/hello-world(上传不上去,需要登录)
登录docker
docker login 192.168.237.152:5000
输入账户和密码(Nexus 创建仓库的账户和密码)
docker pull 192.168.237.152:8000/hello-world(成功)
用户登录查看
可以直接删除,但是再次pull的时候会报已存在.
创建maven Repositories
创建proxy仓库 作用是去远程拉取jar包
- 创建hosted仓库 作用是存放本地上传的三方jar包
- 创建group仓库 作用是将proxy和hosted放到这个组里,进行统一管理
proxy建议配置阿里云maven地址:http://maven.aliyun.com/nexus/content/groups/public
这里多提一个小知识!!!有的时候,我们会用到第三方仓库作为proxy,此时需要配置Routing Rules,即声明什么jar该从什么proxy下载。此处以jeecg仓库为例:
意思就是所有下载路径包含/org/jeecgframework/的jar,全部去jeecg proxy下载
意思就是所有下载路径包含/org/jeecgframework/的jar,全部禁止从aliyun proxy下载
maven设置settings:
<mirror>
<id>nexus-xu</id>
<name>internal nexus repository</name>
<url>http://ip:8081/repository/java-group/</url>
<mirrorOf>!internal.repo,*</mirrorOf>
</mirror>
然后build项目,查看项目是否从私服下载jar包
3.Nexus搭建npm私服
此处搭建过程同上
创建仓库:
proxy(代理仓库):可以代理npm和淘宝镜像
创建hosted(私有仓库):用于发布个人开发的npm组件
创建group(组合仓库):对外公开的仓库,集合了hosted和proxy
proxy建议配置淘宝镜像:https://registry.npm.taobao.org
客户端设置npm:npm config set registry http://ip:8081/repository/npm-group/
本文作者:韩憨
本文链接:https://www.cnblogs.com/hanby/p/14150348.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步