Docker本质上就是虚拟化方法的一种,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何Linux机器上,当然也可以基于Linux实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
docker支持随机创建、销毁,当任务需要创建一台实例时,只需要在设备池中虚拟化出一台资源机,挂载私有网络,便完成了实例创建。当然,服务器除了硬件资源,还需要软件资源,包含操作系统、容器、中间件等配合,因此,实例化docker之后,我们还得创建操作系统、安装我们的容器配置。
那么,能否把这些所需要的内容进行统一打包,然后顺势“解压”到服务器上,直接完成基本环境部署,这就需要镜像文件的协助。
我们回想一下winXP,win7盛行的年代,当年“雨林木风”大火的年代,凡是安装过操作系统的兄弟们,都或多或少听说过ghost,那个蓝色,旁边有个小精灵的框框。我们将gho文件预先存放在磁盘里,或者光盘中,甚至U盘启动盘中,蓝色框框出现后,选中gho文件,对其进行还原。待安装完成后,我们的操作系统就安装好了,当然,驱动什么的,需要自行解决(如果是个人电脑备份的gho便可以任他蓝屏都不怕,当然,前提是资料不要在系统盘)。
ghost这种方式,只是安装OS系统方式其中的一种,还有一种ISO文件,可以双击打开,这种更为方便,打开后,按步骤执行,会覆盖系统盘的全部内容。从而替换当前操作系统。这些,都是镜像文件的体现方式。
镜像(Mirroring)是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。
镜像是一种文件存储形式,可以把许多文件做成一个镜像文件,与GHOST等程序放在一个盘里用GHOST等软件打开后,又恢复成许多文件,RAID1和RAID10使用的就是镜像。常见的镜像文件格式有ISO、BIN、IMG、TAO、DAO、CIF、FCD。
现在云计算中,镜像使用更为广泛。配合虚拟资源生成,镜像集成了操作系统、nginx,tomcat,jenkins,sdk等。按照不同设备功能,对服务器进行不同版本软件集成。
正是因为有了镜像文件,才大大减少了虚拟服务器创建的工作量。才有了如今,各大公有云厂商的一键生成服务器的操作。
上面说了这么多,相信大家都知道今天本作者的主题是什么了,那就是镜像仓库选型比较。
DockerRepository为Docker仓库,是集中存放镜像的地方。
DockerRegistry是Docker仓库的注册服务器,实际上Docker仓库镜像的管理,分发,用户认证都是通过Registry来完成,就是所谓的Docker仓库管理工具。
Docker官方为用户提供了一个公共仓库DockerHub,大部分需求镜像都可以通过在Docker Hub中直接下载镜像来实现。但面对这镜像使用的方便,安全问题及网络延迟等原因,Docker也满足自建私有仓库管理的需求,提供的RegistryDocker私有仓库镜像,同时也有一些不错的第三方Docker私有仓库管理工具涌现而出。
上图为部署测试使用nginx镜像上传到registry私有仓库中,其展示方式使用URL在浏览器中打开,也可在Linux服务器上使用curl命令直接访问URL。其不同的展示样式需要更改URL,并且没有直接管理Docker镜像的工具,同样需要curl命令修改URL的参数来完成,操作不方便。
此工具为DockerHub上第三方Docker私有仓库WebUI镜像,搜索名称为:hyper/Docker-registry-web。其包含身份验证服务及事件记录功能,版本基于Dockerregistry v2。
上图为点击详镜像名称,进而可查看镜像的详细信息。
注:测试Docker-Registry-Web配置为非认证方式,需要在源端服务器上配置Docker允许私有仓库地址。
Docker-Registry-Web除支持镜像展示基本功能外,还可支持镜像删除管理,及身份验证服务等,身份验证服务包括basic验证及证书验证等方式。其功能配置方式不做一一展示请参考官网信息。
参考:https://hub.Docker.com/r/hyper/Docker-registry-web
Nexus3支持作为宿主和代理存储库的Docker存储库,可以直接将这些存储库暴露给客户端工具;也可以以存储库组的方式暴露给客户端工具,存储库组是合并了多个存储库的内容的存储库,能够通过一个URL将多个存储库暴露给客户端工具,从而便于用户的使用。通过Nexus3自建能够有效减少访问获取镜像的时间和对带宽的使用,并能够通过自有的镜像仓库共享企业自己的镜像。
Nexus有两个版本Nexus RepositoryOSS和NexusRepositoryPro,其中OSS版本是免费,Pro专业版需要收费.OSS对于基础的仓库管理已经足够使用。本文中使用的Nexus展示是基于OSS版本。
Nexus中配置Docker私有仓库有三种类型:
hosted(本地类型)镜像资源的提交和拉取都基于本地存储;
proxy(代理类型)本地不做数据存储,可以和hosted配合;
group(组合类型)可以组合多个hosted和proxy按顺序提供统一访问地址;
注:本文测试Nexus版本:NexusOSS 3.24.0-02
如上图所示,opensource-v1为创建的Docker仓库项目(基于hosted类型),在此基础上我们对该项目进行配置管理,主要涉及到仓库端口,api版本允许,匿名提交权限,仓库存储位置,仓库权限等。其中还涉及到规则配置,是Nexus安全性管理中重要的一项。
注:该Nexus仓库配置为http方式,需要在源端服务器上配置Docker允许私有仓库地址。
上图描述:Nexus支持工具中服务资源监控功能。
Nexus出色的界面化管理,及强大仓库管理功能,全面的安全管理配置,简洁高效的系统管理工具,让Nexus成为一款优秀的仓库管理软件,并且其开源版本也得到更多用户的支持与信赖。
Harbor的每个组件都是以Docker容器的形式构建的,可以使用DockerCompose来进行部署,当然,如果你的环境中使用了Kubernetes,Harbor也提供了Kubernetes的配置文件。
Harbor共由8个容器组成:
ui:Harbor的核心服务;
log:运行着Rsyslog的容器,进行日志收集;
mysql:由官方MySQL镜像构成的数据库容器;
nginx:使用Nginx做反向代理;
registry:官方的Docker Registry;
adminserver:Harbor的配置数据管理器;
jobservice:Harbor的任务管理服务;
redis:用于存储Session;
注:本文中测试Harbor版本:v1.10.3-6990ccaa
如上图所示,memcache镜像为测试上传push到Harbor仓库中的展示,其页面内容描述了当前镜像的详细信息,镜像具有复制,添加标签,tag复制及删除功能。
值得一提的是Harbor的仓库管理模块和复制管理模块。仓库管理中可以添加其他仓库源中的镜像,利用复制管理模块可以将其已添加到仓库管理中的镜像复制到Harbor仓库中。
如下图展示(图表1/2/3):
图表1
图表2
图表3
Harbor系统管理中,还有其他功能可选,例如自我注册,项目定额,审查服务,垃圾清理,配置管理,中文支持等。Harbor作为专业的Docker仓库管理工具,致力于企业级Registry服务器发展,其完善的配置,独特的功能,良好的界面展示,及友好的中文支持都受到广大用户的支持与青睐。
通过对这几款私有仓库管理的认识,可以明确看到不同工具之间的功能对比,Registry虽然功能少,但确是官方最早发行支持的私有仓库。像Nexus3,和Harbor是具有强烈的专业性,以其丰富的功能设计来赢得用户的认可。行业内还有其他仓库管理工具流行,本文只采集了这四种来测试对比。希望通过此文章中对不同私有仓库管理工具的认知,结合自身实际情况,现场实际环境,选择适合场景的仓库管理工具。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/130220.html
摘要:三私有代码库阿里云使用引言使用肯定离不开和代码的集成。本着代码可靠性,服务器稳定性,功能扩展性综合对比,我们选择使用阿里云的库。 来自用户的DevOps实践分享,分享从开发代码到生产环境部署的一条龙操作的实践及经验, 包含工具技术的选型及考量、私有代码库与私有镜像库的应用等。 (一)容器服务的Rancher选型 1、为什么说是下一代核心技术 从互联网的多次变革说起,早期的C/S架构,到...
摘要:是系统提供的容器化技术,简称,它结合和技术为用户提供了更易用的接口来实现容器化。公司结合和以下列出的技术实现了容器引擎,相比于,具备更加全面的资源控制能力,是一种应用级别的容器引擎。 showImg(https://segmentfault.com/img/bVbtPbG?w=749&h=192); 题外话 最近对Docker和Kubernetes进行了一番学习,前两天做了一次技术...
摘要:一直广受瞩目,被认为可能会改变软件行业。简化配置这是公司宣传的的主要使用场景。使用,可以为每一个租户的应用层的多个实例创建隔离的环境,这不仅简单而且成本低廉,当然这一切得益于环境的启动速度和其高效的命令。 本文来自于我的慕课网手记:简单聊会 Docker,转载请保留链接 ;) 最近在工作中一直在忙基础设施构建,发现在选型的时候,大家心里基本上都有一个自己的成熟架构。而在服务部署这块发现...
摘要:但身在中国的我们难以深刻体验这些便利,而服务全球开发者的平台亦不可能为中国用户单独定制,所以给大家分享一下如何优化中国区的使用体验。最终我会更新出中国区的使用镜像,并到镜像仓库上,目前使用的是阿里云的镜像仓库招牌比较大短时间内不会倒。 引言 Kubernetes(以下简称K8s)是Rancher平台重点支持的一个编排引擎,Rancher K8s具有部署灵活使用方便的特点, 而且Ranc...
摘要:但身在中国的我们难以深刻体验这些便利,而服务全球开发者的平台亦不可能为中国用户单独定制,所以给大家分享一下如何优化中国区的使用体验。最终我会更新出中国区的使用镜像,并到镜像仓库上,目前使用的是阿里云的镜像仓库招牌比较大短时间内不会倒。 引言 Kubernetes(以下简称K8s)是Rancher平台重点支持的一个编排引擎,Rancher K8s具有部署灵活使用方便的特点, 而且Ranc...
阅读 1249·2023-01-11 13:20
阅读 1557·2023-01-11 13:20
阅读 1011·2023-01-11 13:20
阅读 1680·2023-01-11 13:20
阅读 3971·2023-01-11 13:20
阅读 2519·2023-01-11 13:20
阅读 1310·2023-01-11 13:20
阅读 3486·2023-01-11 13:20