常见的几种开源镜像仓库介绍

时间:2024-03-25 22:05:14

1、Docker Registry

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

# 创建存放用户信息的目录
	mkdir /opt/registry-var/auth/ -p
# 为{andriy}用户名生成密码为{[email protected]}的一条用户信息,存在{/opt/registry-var/auth/htpasswd}文件里面
	docker run --entrypoint htpasswd docker.io/registry -Bbn andriy [email protected]  >> /opt/registry-var/auth/htpasswd
# 启动registry容器
	docker run -d -p 5000:5000 --restart=always -v /opt/registry-var/auth/:/auth/ -e "REGISTRY_AUTH=htpasswd" -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd -v /opt/registry-var/:/var/lib/registry/ --name registry docker.io/registry

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

2、VMware Harbor

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

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

安装部署Harbor

# 安装Docker及Docker-compose
	yum install -y --setopt=obsoletes=0   docker-ce-17.03.1.ce-1.el7.centos
	curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
# 下载Harbor安装包
   wget https://storage.googleapis.com/harbor-releases/harbor-offline-installer-v1.6.1.tgz
# 配置Harbor及Docker
   tar zxvf harbor-offline-installer-v1.6.1.tgz
   cd harbor/
   修改harbor.cfg文件中hostname为主机IP
   在docker的daemon.json中添加本机80端口的insecure-registry
   重启docker
# 安装harbor
   sh instsll.sh
   输出如下:
   [Step 0]: checking installation environment ...

Note: docker version: 17.03.1

Note: docker-compose version: 1.9.0

[Step 1]: loading Harbor images ...
   下载镜像...

[Step 2]: preparing environment ...
generated and saved secret key
Generated configuration file: ./common/config/nginx/nginx.conf
Generated configuration file: ./common/config/ui/env
Generated configuration file: ./common/config/ui/app.conf
Generated configuration file: ./common/config/registry/config.yml
Generated configuration file: ./common/config/db/env
Generated configuration file: ./common/config/jobservice/env
Generated configuration file: ./common/config/jobservice/app.conf
Generated configuration file: ./common/config/ui/private_key.pem
Generated configuration file: ./common/config/registry/root.crt
The configuration files are ready, please use docker-compose to start the service.


[Step 3]: checking existing instance of Harbor ...


[Step 4]: starting Harbor ...
Creating network "harbor_default" with the default driver
Creating harbor-log
Creating harbor-db
Creating harbor-ui
Creating registry
Creating harbor-jobservice
Creating nginx

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://39.105.109.179. 
For more details, please visit https://github.com/vmware/harbor .

安装部署完成之后可以通过浏览器登陆UIip:80
默认用户名密码admin/Harbor12345
常见的几种开源镜像仓库介绍
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的特点如下:

  • 部署简单,通过启动一个容器即可完成
    docker run -d --name nexus -p 5000:5000 -p 8081:8081 sonatype/ docker.io/sonatype/nexus3
  • 支持TLS安全认证
  • 提供Web UI管理界面
  • 支持代理仓库(Docker Proxy),可以将到Nexus镜像仓库的操作代理到另一个远程镜像库
  • 支持仓库组(Docker Group),可以把多个仓库组合成一个地址提供服务
  • 除了支持Docker镜像,还支持对其他软件仓库的管理,例如:Yum、Npm等。目前不支持APK(alpine系统软件仓库)
    下图是Nexus界面
    常见的几种开源镜像仓库介绍
    常见的几种开源镜像仓库介绍

4、SUSE Portus

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

  • 基于组(Team)和命名空间(Namespace)的细粒度访问权限控制
  • Web UI管理界面
  • 可以集成LDAP用户认证系统,也支持OAuth
  • 审计日志
  • 提供RESTful API,以供外部客户端调用
  • 镜像安全漏洞扫描(集成Clair镜像扫描工具)
    常见的几种开源镜像仓库介绍

以上几种方案的特性对比

方案特性 Docker Registry VMware Harbor Sonatype Nexus SUSE Portus
系统复杂度 简单 复杂 简单 一般
配置难易度 简单 复杂 一般 一般
Web UI管理界面
与外部LDAP/AD集成
访问权限控制
镜像复制 支持复制到另一个Harbor镜像库 支持Proxy代理到另一个镜像库
镜像扫描 可集成Clair 可集成Clair