# Harbor私有鏡像倉庫
在說harbor之前,我們首先說一說直接使用docker registry的一些缺陷:
缺少認證機制,任何人都可以隨意拉取及上傳鏡像,安全性缺失
缺乏鏡像清理機制,鏡像可以push卻不能刪除,日積月累,占用空間會越來越大
缺乏相應的擴展機制
鑒于以上缺點,我們通常在生產環境中,不會直接使用docker registry來實現提供鏡像服務。而Harbor正好解決了上述所有的問題。
Harbor是一個用于存儲和分發Docker鏡像的企業級Registry服務器,通過添加一些企業必需的功能特性,例如安全、標識和管理等,擴展了開源Docker Distribution。作為一個企業級私有Registry服務器,Harbor提供了更好的性能和安全。提升用戶使用Registry構建和運行環境傳輸鏡像的效率。Harbor支持安裝在多個Registry節點的鏡像資源復制,鏡像全部保存在私有Registry中,確保數據和知識產權在公司內部網絡中管控。另外,Harbor也提供了高級的安全特性,諸如用戶管理,訪問控制和活動審計等。
Harbor官方網站:http://vmware.github.io/harbor/
Harbor源碼地址:https://github.com/vmware/harbor
(摘自breezey的博客)
```shell
# 下載https://github.com/docker/compose/releases/最新版 至/root/
# cd
# chmod +x docker-compose-Linux-x86_64
# mv docker-compose-Linux-x86_64 docker-compose
# mv docker-compose /usr/local/bin/
# 下載https://github.com/vmware/harbor/releases最新版 至/opt/
# cd /opt/
# tar -xvf harbor-offline-installer-v1.4.0.tgz
# mkdir harbor/certs
# cd harbor/certs
# openssl genrsa -out /opt/harbor/certs/ca.key 2048
# 域名需要按照自己的來更改
# openssl req -x509 -new -nodes -key /opt/harbor/certs/ca.key -subj "/CN=haha.com" -days 5000 -out /opt/harbor/certs/ca.crt
# 修改harbor配置文件
# cd ..
# vim harbor.cfg
hostname = haha.com
ui_url_protocol = https
ssl_cert = /opt/harbor/certs/ca.crt
ssl_cert_key = /opt/harbor/certs/ca.key
# ./install.sh
# 瀏覽器登錄https://192.168.11.217 驗證harbor 用戶名admin 密碼Harbor12345
# 登錄master1
# vim /etc/hosts
192.168.11.217 haha.com
# mkdir -p /etc/docker/certs.d/haha.com
# 拷貝ca.crt證書
# cd /opt/harbor/certs/
# scp ca.crt master1:/etc/docker/certs.d/haha.com
# 登錄master1
# systemctl restart docker
# 驗證push鏡像 登錄harbor1穿件test倉庫
# 登錄master1
# docker pull nginx
# docker tag nginx haha.com/test/nginx:v1.0
# docker login haha.com
# docker push haha.com/test/nginx:v1.0
```