Docerk安装Nexus3.x 并搭建私有仓库

Nexus介绍


Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库服务器,在代理远程仓库的同时维护本地仓库,以节省带宽和时间,Nexus就可以满足这样的需要。此外,他还提供了强大的仓库管理功能,构件搜索功能,它基于REST,友好的UI是一个extjs的REST客户端,它占用较少的内存,基于简单文件系统而非数据库。这些优点使其日趋成为最流行的Maven仓库管理器。除此之外,Nexus还可以管理Docker镜像

通常的做法:本地仓库没有,则去中央仓库下载


搭建私库的做法:本地仓库没有,再去私服下载,私服没有,再去中央仓库下载


docker安装Nexus3.x
安装docker
在我的另一篇文章有说明,直接使用yum安装,非常简单,请移步:
Docker第二篇-Linux和Windows下安装Docker

安装Nexus3
准备好一台虚拟机,执行以下命令:

#创建宿主机挂载目录并设置权限
mkdir -p /usr/local/nexus3/nexus-data
chown -R 200 /usr/local/nexus3/nexus-data

docker run -d \
--privileged=true \
--name nexus3 \
--restart=always \
-p 8081:8081 \
-p 8082:8082  \
-p 8083:8083  \
-p 8084:8084  \
-p 8085:8085 \
-v /usr/local/nexus3/nexus-data:/nexus-data \
sonatype/nexus3


8081:8081表示宿主机端口和容器端口映射(web访问)

8082:8082表示nexus服务端口

本地若不存在sonatype/nexus3镜像,则会去下载,下载完毕后直接启动

docker logs -f  容器ID  查看日志显示

-------------------------------------------------

Started Sonatype Nexus OSS 3.19.1-01

-------------------------------------------------
2019-12-02 13:20:13,667+0000 WARN  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Ignoring deprecated socket close linger time
2019-12-02 13:20:13,704+0000 INFO  [jetty-main-1] *SYSTEM org.eclipse.jetty.server.AbstractConnector - Started ServerConnector@54968822{HTTP/1.1,[http/1.1]}{0.0.0.0:8082}

安装完毕!

登录验证
访问web地址:http://ip:8081/
默认账号为:admin
默认密码在文件中:/usr/local/nexus3/nexus-data/admin.password


web界面使用
Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了
默认仓库说明
maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar
maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy
maven-snapshots:私库快照(调试版本)jar
maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

仓库类型
Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,Central,当然你也可以自己设置。
Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件
3rd party:未发布到公网的第三方jar (3.x去除了)
Snapshots:本地项目的快照仓库
Releases: 本地项目发布的正式版本
Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库
Central:中央仓库
Apache Snapshots:Apache专用快照仓库(3.x去除了)

上传镜像
登录私服仓库
注意在push上传之前必须要先登录

[root@rancher ~]# docker login 172.16.66.3:8082

打标记
在上传镜像之前需要先打一个tag,用于版本标记。
格式是这样的:

docker tag <imageId or imageName> <nexus-hostname>:<repository-port>/<image>:<tag>


例如:

# docker tag httpd 172.16.66.3:8082/httpd:v1

最后上传镜像:

# docker push 172.16.66.3:8082/httpd:v1

pull镜像
从私服中下载镜像也很简单,执行以下命令即可

# docker pull 172.16.66.3:8082/httpd:v1

搜索镜像
搜索镜像也与之前的类似,如下:

# docker search 172.16.66.3:8082/httpd:v1


就可以搜索带有httpd的镜像了:



总结
有了这个私服过后,真的是非常方便了。因为官方的dockerhub镜像仓库下载实在是太慢了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值