Nexus | 企业级镜像仓库

1,791 阅读2分钟

「本文已参与好文召集令活动,点击查看:后端、大前端双赛道投稿,2万元奖池等你挑战!

前言

使用 Docker 官方的 Registry 创建的仓库,面临着这样的问题,比如删除镜像后空间默认不会回收,造成空间被占用。比较常见的做法是使用 Nexus 来管理企业的工具包。

Nexus 不仅可以创建 Docker 仓库,也可以 NPM、Maven 等多种类型的仓库。

我们可以将Registry对接到Nexus实现容器镜像的生命周期管理。

启动Nexus容器

使用docker run命令启动Nexus容器:

查看启动后的Nexus容器:

查看Nexus和registry服务

Nexus启动成功后,可以使用HostIP+8081访问Nexus服务,使用HostIP+8082访问registry服务。

查看Nexus服务: 在本地windows访问虚拟机的IP+8081端口

查看registry服务: 在本地windows访问虚拟机的IP+8082端口

添加访问权限:

以上操作主要是为dockerrepository创建一条规则,具体约束为adminanonymous都可以对镜像仓库进行所有操作。

登录Nexusregistry

推送私有镜像到Nexusregistry

查看推送结果:

到此,Nexusregistry搭建完成。

Q&A

Nexus服务对主机的内存和磁盘都有限制,所以在资源比较小的虚拟机上启动Nexus容器之后,需要对其资源配置文件进行修改。

Nexus的启动命令:

docker run -d --name nexus3 --restart=always \
    -p 8081:8081 \
    -p 8082:8082 \
    --mount src=nexus-data,target=/nexus-data \
    sonatype/nexus3

内存配置文件:

cat /etc/security/limits.conf
nexus hard nofile 1024
nexus soft nofile 1024

磁盘配置文件:

/opt/sonatype/nexus/bin/nexus.vmoptions,添加如下行:

-Dstorage.diskCache.diskFreeSpaceLimit=1024