kubernetes(K8S)从零开始搭建Nexus 3 作为私有镜像仓库

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值