目录

一、场景

二、分析报告结论

总体分析表

1、Docker Registry

2、VMware Harbor

3、Sonatype Nexus

4、SUSE Portus

三、技术经理总结

四、Nexus介绍

五、拉取镜像

1、查找镜像

2、拉取镜像

六、启动容器

启动容器报错

解决方案:

七、访问并配置nexus


一、场景

====

市民赵铁柱在A公司担任开发工程师。

技术经理让赵铁柱找适合公司的Docker开源镜像仓库,并形成分析报告提交给经理。赵铁柱通过身边的人脉咨询和网上查找资料,最终选定了四款仓库。

1、Docker Registry

2、VMware Harbor

3、Sonatype Nexus

4、SUSE Portus

二、分析报告结论

========

总体分析表


方案特性

Docker Registry

VMware Harbor

Sonatype Nexus

SUSE Portus

系统复杂度

简单

复杂

简单

一般

配置难易度

简单

复杂

一般

一般

Web UI管理界面

与外部LDAP/AD集成

访问权限控制

镜像复制

支持复制到另一个Harbor镜像库

支持Proxy代理到另一个镜像库

镜像扫描

可集成Clair

可集成Clair

1、Docker Registry


Docker Registry是最流行的开源私有镜像仓库,以镜像格式发布,在下载后运行一个Docker Registry容器即可启动一个私有镜像仓库服务。

Docker Registry的有点如下:

  1. Docker Registry的最大优点就是简单,只需要运行一个容器就能集中管理一个集群范围内的镜像,其他机器就能从该镜像仓库下载镜像了。
  2. 在安全性方面,Docker Registry支持TLS和基于签名的身份验证。
  3. Docker Registry也提供了Restful API,以提供外部系统调用和管理镜像库中的镜像

2、VMware Harbor


VMware Harbor(简称Harbor)项目是由VMware中国研发团队开发的开源容器镜像仓库系统,基于Docker Registry并对其进行了许多增强,主要特性包括:

  1. 基于角色的访问控制
  2. 镜像复制
  3. Web UI管理界面
  4. 可以集成LDAP或AD用户认证系统
  5. 审计日志
  6. 提供RESTful API以提供外部客户端调用
  7. 镜像安全漏洞扫描(从v1.2版本开始集成了Clair景象扫描工具)

Harbor相对于Docker Registry,提供了更好的用户管理、角色权限管理、审计日志,以及多个Harbor镜像仓库之间的镜像复制功能,可以用作企业私有镜像库的服务器。不过由于Harbor的组件较多,所以与外界的集成较为复杂。

3、Sonatype Nexus


Sonatype Nexus是一个软件仓库管理器,主要有2.X和3.X两个大版本。2.X版本主要支持Maven、P2、OBR、Yum等仓库软件;3.X版本主要支持Docker、NuGet、npm、Bower、PyPI、Ruby Gems、Apt、Conam、R、CPAN、Raw、Helm等仓库软件,也支持构建工具Maven。

Sonatype Nexus的特点如下:

  1. 部署简单,通过启动一个容器即可完成
  2. 支持TLS安全认证
  3. 提供Web UI管理界面
  4. 支持代理仓库(Docker Proxy),可以将到Nexus镜像仓库的操作代理到另一个远程镜像库
  5. 支持仓库组(Docker Group),可以把多个仓库组合成一个地址提供服务
  6. 除了支持Docker镜像,还支持对其他软件仓库的管理,例如:Yum、Npm等。

4、SUSE Portus


SUSE Portus是另一个开源镜像库,其特点包括:

  1. 基于组(Team)和命名空间(Namespace)的细粒度访问权限控制
  2. Web UI管理界面
  3. 可以集成LDAP用户认证系统,也支持OAuth
  4. 审计日志
  5. 提供RESTful API,以供外部客户端调用
  6. 镜像安全漏洞扫描(集成Clair镜像扫描工具)

三、技术经理总结

========

1、公司现在已经在使用Nexus当Maven私服,Nexus3又支持docker,到时用一套私服仓库就可以一举多得。

2、Harbor功能强大,但组件多,配置和运维的复杂度高,增加运维难度。

3、Docker Registry不满足公司需要,而且也没有图形界面管理;SUSE Portus跟Nexus有差不多的功能,最终公司还是选择Nexus3。

四、Nexus介绍

=========

“Docker官方镜像仓库” 访问速度很慢,Sonatype Nexus允许搭建我们自己的镜像仓库,为实现镜像拉取、推送提供便利。

Sonatype Nexus是一个软件仓库管理器,主要有2.X和3.X两个大版本。2.X版本主要支持Maven、P2、OBR、Yum等仓库软件;3.X版本主要支持Docker、NuGet、npm、Bower、PyPI、Ruby Gems、Apt、Conam、R、CPAN、Raw、Helm等仓库软件,也支持构建工具Maven。

五、拉取镜像

======

1、查找镜像


docker search nexus3

如何查找镜像 镜像从哪里找_Docker

2、拉取镜像


docker pull docker.io/sonatype/nexus3

如何查找镜像 镜像从哪里找_面试_02

六、启动容器

======

指定数据卷,防止每次启动容器,容器里的数据丢失,实现容器和虚拟机数据共享

指定虚拟机与容器共享的文件夹

mkdir /usr/local/docker/nexus/nexus-data

如何查找镜像 镜像从哪里找_如何查找镜像_03

需要修改文件夹权限

chmod 777 /usr/local/docker/nexus/nexus-data

“8716903d1912 ”为nexus的镜像ID

docker run -p 8081:8081 --name nexus -v /usr/local/docker/nexus/nexus-data:/nexus-data 8716903d1912

启动容器报错


如何查找镜像 镜像从哪里找_学习_04

报错:没有权限创建

mkdir: cannot create directory ‘…/sonatype-work/nexus3/log’: Permission denied