1. 程式人生 > >常見的幾種開源映象倉庫介紹

常見的幾種開源映象倉庫介紹

常見的幾種開源映象倉庫介紹

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