常見的幾種開源映象倉庫介紹
阿新 • • 發佈:2018-12-18
常見的幾種開源映象倉庫介紹
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 |