当前位置: 首页 > Linux

Podman、Docker搭建Nexus3私有Maven、Docker镜像仓库

时间:2023-04-06 22:31:22 Linux

在日常开发中,为了更方便的使用一些自制的工具,有时会把工具集打包成jar包,方便调用。虽然可以存入Maven本地仓库,但万物皆可云。为什么不建一个云私有仓库呢?众所周知,良心云常规云各大云平台都提供免费的私有Maven仓库服务,随便用当然自己建一个。在Google之后,最终选择的是Nexus。Nexus的全称是NexusRepositoryManager,是Sonatype公司的产品。是一个强大的仓库管理器,大大简化了内部仓库的维护和外部仓库的访问(复制)进入教程Podman,Docker安装推荐官方文档:Podman安装,Docker安装PS:使用ArchLinux安装Podman时你会遇到权限问题。ArchWiki上有解决方案(地址)。Podman基本兼容Docker命令。下面使用Podman来操作。如果使用Docker,则需要root权限才能部署。这里使用最简单的Podman容器化部署来创建文件夹。后面挂载容器数据为了方便给777权限(严重洁癖可以自己授予其他权限)mkdir-p~/nexus/datachmod777-R~/nexus创建一个容器并挂载对应的数据卷podmanrun--restartalways-d\-v~/nexus/data:/nexus-data\-p8081-8089:8081-8089\--namenexus\klo2k/nexus3等待两分钟左右后,通过http://IP地址访问浏览器:8081进入Nexus管理界面。默认帐户是管理员。默认密码可以通过挂载数据卷中的admin.password查看。登录后可以修改密码。端口映射8081-8089九个端口作为冗余部署。Next进入本文的第二部分,恰好仓库搭建好了,需要一个Docker私有镜像仓库,开始了漫长的选型之路。现在比较常见的仓库有以下几种:Registry:Docker官方提供的原生仓库Portus:SuSE团队推出的Harbor:VMWare中国团队推出的企业级仓库Enterprise-level,多么诱人的名字,我理所当然地选择了Harbor。作为一个坚定的Podman用户,Harbor官方的部署方式是使用docker-compose。Podman目前还没有官方成熟的替代产品(sorry),手动部署的方式太麻烦,不方便管理。最后偶然发现Nexus3的版本可以作为Docker镜像仓库(狂喜)。Nexus3Docker镜像仓库配置登录Nexus后,点击Settings,点击仓库,点击Createrepository创建仓库。Docker镜像仓库有group、hosted、proxy三种选择。group:组类型,本质功能是将多个仓库合并为一个地址hosted:本地存储,即像docker官方仓库一样提供本地私服功能proxy:为其他仓库类型提供代理,比如docker中央仓库这里选择hostedtype,填写名称,可以勾选HTTP选项,填写8082-8089之间的任意一个端口作为镜像仓库的推拉端口。选中启用DockerV1API以允许v1版本API。其他选项可以默认。单击Createrepository创建仓库。结果如下:至此,你的扩展就大功告成了最后,还有一些个人的想法。在云服务器上部署私有镜像仓库听起来不错,但实际上还是存在一些问题,比如存储问题。Nexus本身支持使用AWS对象存储作为BlobStores,但是我怎么可能不想注册AWS账户,而且对象存储本身就是一个开销,所以我从免费入手。经过一番验证,腾讯云的对象存储也是使用了AWS的S3协议,但是经过一番操作,由于Region只能从已有的列表中选择并声明GG,于是又衍生出另一个想法,使用对象存储工具COSFS挂载腾讯Cloud的storagebucket作为serverdisk,然后添加到BlobStores中,达到同样的效果,后面有时间操作的话,再做一个教程,关于Docker和Podman如何使用私有镜像和仓库一样,其实也有一些小坑,还是等下一篇教程吧