Linux上 Nexus 安装方式有很多种,譬如二进制安装、镜像安装等等,具体情况具体处理吧。
现在记录下二进制安装的过程:
一 、Nuxus安装过程
1.下载Nexus 下载最新版的nexus下载地址:https://www.sonatype.com/oss-thank-you-tar.gz
2.linux上创建nexus的文件夹并进入文件夹: mkdir /nexus && cd /nexus
3.将下载的nexus上传到nexus文件夹下并将其解压,上传自行处理解压命令(这里下载的是nexus-3.15.2-01版本):tar -xvf nexus-3.15.2-01-unix.tar.gz
4.检验下linux上是否安装1.8及以上版本jdk: java -version 若没有安装则进行安装:yum install java-1.8.0-openjdk.x86_64
若安装1.8版本启动时以下会报如下错误:
5.安全起见,我们建立一个nexus用户用来启动nexus
adduser nexus
passwd nexus (设置nexus密码)
更改nexus文件夹的访问权限更改为nexus用户
sudo chown -R nexus:nexus /nexus
打开/nexus/bin/nexus.rc 文件, 修改启动用户如下
run_as_user=”nexus”
6.如果你想更改默认的数据目录,可以打开nexus的配置文件,修改-Dkaraf.data属性。
vi /nexus/nexus/bin/nexus.vmoptions
下面来一个例子
-Xms1200M
-Xmx1200M
-XX:+UnlockDiagnosticVMOptions
-XX:+UnsyncloadClass
-Djava.net.preferIPv4Stack=truer
-Dkaraf.home=.
-Dkaraf.base=.
-Dkaraf.etc=etc
-Djava.util.logging.config.file=etc/java.util.logging.properties
-Dkaraf.data=/nexus/nexus-data
-Djava.io.tmpdir=data/tmp
-Dkaraf.startLocalConsole=false
那么接下来我们就可以启动Nexus了。我们最好将nexus服务添加到linux的启动服务init.d中,设置步骤如下:
7: 为nexus创建一个链接到/etc/init.d文件夹.
ln -s /nexus/nexus/bin/nexus /etc/init.d/nexus
8: 执行以下命令将nexus服务添加到系统boot中
chkconfig --add nexus
chkconfig --levels 345 nexus on
这样就配置完了,我们可以使用以下命令控制Nexus服务的开启/关闭/重启。
service nexus start/stop/restart
二 、调试Nexus
出现以下的界面表示启动成功
nexus配置和使用
nexus可以作用yum的私库,maven私库、nuget等,可以参见官方说明,这里只是针对docker的私有镜像进行配置
-
私有镜像库(host repository)的配置和访问
注意blob store需要提供比较大的空间
创建后会在9990端口上提供服务,然后配置NGINX支持HTTPS的访问
-
代理镜像库(proxy repository)的配置和访问
在内网总是有下载hub.docker.com 的需求,可以通过配置nexus的代理模式来实现
使用管理员登陆,默认账号 admin/admin123
- 添加新的repository
图中 "Blob store"建议自己配置为比较大的磁盘分区上,避免空间不足
点击"create repository"后可以查看是否在9991(可以在创建时进行调整)端口进行监听 因为docker访问镜像库使用的是HTTPS,需要在NGXIN服务器上配置HTTPS的方向代理,指向9991端口。
nginx 配置
Nginx的安装可以参见互联网上的其他文章,这里主要是配置如果通过HTTPS的方向代理去访问docker的私有registry,
本例中的docker使用的版本是18.03.1-ce,在进行login登陆时要求后端的registry需要采用HTTPS的方式
- 配置proxy repository 的HTTPS访问
在nginx开启9991端口的HTTPS的监听,将请求指向nexus服务器的9991端口.配置完成后reload Nginx服务器
/usr/local/nginx/sbin/nginx -t #检查配置是否有错误
/usr/local/nginx/sbin/nginx -s reload #重新加载配置
- 配置host repository的HTTPS访问
使用方法
代理(registry)的使用方法
docker login mobile.chinasws.com:9991 #登陆
需要输入创建repository时指定的账号和密码 登陆成功后可以pull远程的镜像
docker pull mobile.chinasws.com:9991/nginx # 拉取DockerHub上的nginx镜像
在使用时需要注意,拉取外网的image时都需要将mobile.chinasws.com:9991追加载镜像前面
私有registry的使用方法
docker login mobile.chinasws.com:9990 #登陆
需要输入创建repository时指定的账号和密码 登陆成功后可以pull私有库的镜像
docker pull mobile.chinasws.com:9990/nginx # 拉取mobile.chinasws.com:9990上的nginx镜像,如果没有则拉取失败
提交本地image到mobile.chinasws.com:9990
docker tag imageid mobile.chinasws.com:9990/imageid:tag
docker push mobile.chinasws.com:9990/imageid:tag