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

 

  1. 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 创建仓储 

  1. 创建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仓库 作用是将proxyhosted放到这个组里,进行统一管理

 

 

 

 

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(组合仓库):对外公开的仓库,集合了hostedproxy

proxy建议配置淘宝镜像:https://registry.npm.taobao.org

 

客户端设置npm:npm config set registry http://ip:8081/repository/npm-group/

posted @ 2020-12-17 16:25  韩憨  阅读(665)  评论(0编辑  收藏  举报
//看板娘