构建Docker镜像仓库的另一选择:Nexus3 - DockOne.io

我们知道,构建企业内部私有Docker镜像仓库有很多选择,比如可以采用原生的Docker

Registry服务,也可以部署更加专业的工具,例如SUSE team的Portus

https://github.com/SUSE/Portus)或VMware出品的Harbor(https://github.com/vmware/harbor)。我们也就曾对Harbor这样的产品做过较为详细的分析(http://mp.weixin.qq.com/s/oQoLgNgnfM8TQHnDDOOIog)。然而像Harbor这样的明星级镜像仓库管理器组件较为复杂,有没有比Docker原生的registry功能丰富而又简单易用的其它选择呢?

【上海站|3天烧脑式微服务架构训练营】培训内容包括:DevOps、微服务、Spring Cloud、Eureka、Ribbon、Feign、Hystrix、Zuul、Spring Cloud Config、Spring Cloud Sleuth等。

做Java研发项目的同事应该对于搭建Maven私服的工作不陌生,他们会选择例如Apache Archiva,Jfrog Artifactory或Sonatype Nexus之类的工具。在本篇文章我们要向大家介绍的正是Sonatype Nexus 3这个强大的工具,它不仅仅能够用于创建Maven私服,还可以用来创建bower、npm、nuget、pypi、rubygems等各种私有仓库,受到docker技术不断被追捧的影响,Nexus从3.0版本也开始支持创建Docker镜像仓库了。

让我们开始一次Nexus3的体验吧,当然一切的工作我们都会以Docker容器化的方式进行,这也许正是一个追求简单易用的趋势吧!

首先让我们获得Nexus3的Docker镜像,这样我们即可免除手动安装调试的麻烦。

通过上面Build Image的过程,我们得到了Nexus3的镜像,接下来我们在Rancher平台进行部署(当然你也可以通过一条docker run指令将容器运行起来,例如docker run –d --name=Nexus3 --restart=always -p 8081:8081 -p 8088:8088 –v /home/rancher/nexus-data:/nexus-data sonatype/nexus:3)。选择Rancher平台的好处是部署方便,全部基于UI图形界面完成操作,更进一步我们还可以将这个Nexus3制作成应用商店(Catalog)随时备用。

第一步 在Rancher平台添加应用栈:

填写应用栈名称为Sonatype,描述为Nexus Repository Manager

第二步 在该应用栈下添加Nexus3服务:

填写docker镜像为前面步骤生成的sonatype/nexus:3,添加两个端口映射项目,其中8081是Nexus服务自身的Web管理页面端口,8088是我们用于Docker镜像仓库服务的端口。(可以根据实际情况只有定义);

设置卷挂载条目,以便将Nexus的配置信息及数据持久保存于宿主机,这里Nexus容器内的/nexus目录被映射到RancherOS宿主机的/home/rancher/nexus-data目录下。

一切都是如此的优雅简洁,不到一分钟时间,我们的Nexus3服务便已经启动正常了。点击应用栈里的8081端口链接,我们便打开了Nexus的登录窗口,输入默认用户名及密码admin/admin123:

噢,这里首先映入眼帘的就是一堆图标,Docker蓝鲸赫然列于首位呢:

那么究竟Nexus3是如何来支持Docker镜像的呢?我们迫不及待的打开控制页面的按钮,像部署一台Maven私服那样开始操作,在设置 Repositories 选项卡中中选择 Create repository。

令人激动的信息终于出现了,没有看错,Nexus3确实支持如此丰富的仓库类型:

我们比较关心的是Docker镜像仓库,这里我们可以看到三种类型,分别是docker(group),docker(hosted),docker(proxy)。其含义解释如下:

hosted : 本地存储,即同docker官方仓库一样提供本地私服功能

proxy : 提供代理其他仓库的类型,如docker中央仓库

group : 组类型,实质作用是组合多个仓库为一个地址

我们的目标是建立一个本地私服Docker镜像仓库,于是选择docker(hosted),填写仓库名称,端口例如8088等信息后点击Create repository创建即可。

只需要很短的时间,我们即可见到服务启动成功的信息:

部署过程到此为止结束,真的是非常的简单!下面我们来看看在docker客户端的镜像提交及下载过程吧:

(在我们的测试场景中并未为镜像仓库服务启用https证书,所以docker启动进程的参数还需要添加参数--inscure-registry=192.168.9.11:8088,具体方法依不同OS有所差异不再详述)

Docker客户端需要登录镜像仓库才能镜像上载下载的操作,账号就是Nexux的用户账号,这里我们使用了管理员的登录信息(admin/admin123)。

由于 Nexus 在Maven jar管理方面已经是很成熟的产品,增加了Docker等支持以后基本思想没有太大变化,所以关于其他仓库配置这里不再提及,具体可以参考官方文档 (http://books.sonatype.com/nexu ... x.html) 。

面对Nexus3的强大功能,本篇文章只是起到抛砖引玉的作用。而对于另外两种Docker镜像仓库类型感兴趣的朋友可以进一步做相关测试,这里只做简要的描述,希望能够一起研究学习:

创建代理仓库(docker proxy)

创建仓库类型选择docker proxy,Remote storage填写https://registry-1.docker.io,Docker index选择Use Docker Hub,然后从代理仓库地址pull就可以了:

创建group仓库(docker group)

group不提供具体存储服务,其主要作用就是类似一个前端反向代理,可以把多个仓库(比如hosted私服和 proxy)组合成一个地址提供访问,创建方法基本相同,主要是添加多个hosted或者proxy类型的其他仓库即可:

文末福利:请大家关注‘Wise2C‘公众号并回复【进群】,睿云小助手会第一时间拉你进入【

Docker企业落地实践群】,我们分享的各个企业案例项目的技术专家与用户代表,正在敬候您的光临,期待大家就项目的更多细节与疑问与群里的大牛们进行咨询探讨。

若需要了解更多有关Wise系列PaaS产品的详情,请与我们的市场团队联系: [email protected]

来自为知笔记(Wiz)

时间: 2024-10-14 02:43:13

构建Docker镜像仓库的另一选择:Nexus3 - DockOne.io的相关文章

Docker 构建私有镜像仓库(6)

title: Docker 构建私有镜像仓库(6) date: 2018-12-18 08:47:27 tags: Docker categories: Docker copyright: true --- Docker是基于Go语言实现的开源容器项目,Docker让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口,Docker诞生于2013年年初,最初发起者是dotCloud公司.

(六)构建Docker私有仓库、Gitlab仓库和持续集成环境

环境说明 IP 功能 eth0:192.168.124.139 eth1:172.16.100.10 Docker私有仓库.Gitlab.持续集成 eth0:192.168.124.138 eth1:172.16.100.20 Docker服务器,运行容器 构建Docker私有仓库 我们通过Docker官方镜像registry来构建私有仓库. 首先要关闭防火墙.开启IP转发,在CentOS 7上IP转发是禁用的. 默认情况下会将仓库目录创建在容器的/var/lib/registry/下,所以我们

使用Jenkins构建Docker镜像

Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上.同时Jenkins能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性.并且Jenkins提供了大量的插件,能够完成各种任务. 今天我需要使用Jenkins构建一个Docker镜像,然后自动push到docker registry中.到了docker registry中,后面测试人员就可以把镜像发布到测试环境,测试如

构建Docker镜像实战之构建Tomcat9.0镜像(RPM一键安装Java环境)

构建Docker镜像实战之构建Tomcat9.0镜像(RPM一键安装Java环境) tomcat是一个免费开源的轻量级web服务器,在中小型企和并发访问量不高的场合普遍使用,是开发和调试JSP程序的首选.下面使用Dockerfile文件的方式来创建带有tomcat服务的Dockerfile镜像.(注:这里的Java环境是使用rpm一键式安装的且小编创建的是tomcat9.0的镜像) 下面直接开始实验 关闭防火墙及SELinux systemctl stop firewalld.service s

Centos7安装Docker镜像仓库Harbor1.5.3

Harbor 详细介绍 1.容器应用的开发和运行离不开可靠的镜像管理.从安全和效率等方面考虑,部署在私有环境内的 Registry 是非常必要的. 2.Harbor 是由 VMware 公司中国团队为企业用户设计的 Registry server 开源项目,包括了权限管理(RBAC).LDAP.审计.管理界面.自我注册.HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能,欢迎使用和反馈意见. 3.作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性

使用Dockerfile为SpringBoot应用构建Docker镜像

使用Dockerfile为SpringBoot应用构建Docker镜像 原创: 梦想de星空 macrozheng 6月17日 上次写过一篇使用Maven插件构建Docker镜像 ,讲述了通过docker-maven-plugin来构建docker镜像的方式,此种方式需要依赖自建的Registry镜像仓库.本文将讲述另一种方式,使用Dockerfile来构建docker镜像,此种方式不需要依赖自建的镜像仓库,只需要应用的jar包和一个Dockerfile文件即可. Dockerfile常用指令

离线手动部署docker镜像仓库——harbor仓库(二)

前言: 在<离线手动部署docker镜像仓库--harbor仓库(一)>中,记录了离线部署harbor仓库的简单过程,这里主要记录修改默认访问端口80端口为1180端口的部署方式和注意点. 实验环境:harbor服务器系统:CentOS Linux release 7.4.1708 (Core)harbor服务器IP:10.0.0.101harbor版本:v1.5.0docker版本:1.13.1另外为了测试pull镜像,使用了另一台test102机器:10.0.0.102 部署过程: 1.下

docker镜像仓库(3)

目录 搭建镜像仓库 harbor基础 harbor使用 搭建镜像仓库 harbor基础 Docker镜像仓库自建仓库的必要性 默认第三方提供的镜像仓库在海外,例如https://hub.docker.com/,太慢了,所以我们要自己搭建 第三方镜像仓库一般不允许有太多的私有镜像 Harbor镜像仓库的搭建前提条件: 需要安装docker 需要有docker-compose Harbor离线版安装下载地址 下载离线安装的版本,上传到服务器,解压https://github.com/goharbor

巧用Docker镜像仓库Harbor部署私有Mirror服务

本文作者付广平,UnitedStack有云存储工程师,北京邮电大学硕士,从事大数据和云计算相关工作,2016年毕业后加入UnitedStack大数据&容器组,负责Docker.Magnum和Sahara相关工作,Openstack.Docker社区活跃者. 作者别出心裁地使用Harbor搭建了私有Mirror服务,加速外部Docker镜像的下载.编者对原文做了少量修改. Harbor是VMware公司最近开源的企业级Docker Registry项目(https://github.com/vmw