1. 程式人生 > >Docker 私有倉庫 Harbor registry 安全認證搭建 [Https]

Docker 私有倉庫 Harbor registry 安全認證搭建 [Https]

engine root sha2 create rtu r12 -i 啟動 鏡像倉庫

Harbor源碼地址:https://github.com/vmware/harbor
Harbort特性:
基於角色控制
用戶和倉庫都是基於項目進行組織的, 而用戶基於項目可以擁有不同的權限。
基於鏡像的復制策略
鏡像可以在多個 Harbor 實例之間進行復制。
支持 LDAP
Harbor 的用戶授權可以使用已經存在 LDAP 用戶。
鏡像刪除 & 垃圾回收
Image 可以被刪除並且回收 Image 占用的空間。
用戶 UI
用戶可以輕松的瀏覽、搜索鏡像倉庫以及對項目進行管理。
鏡像刪除 & 垃圾回收
絕大部分的用戶操作 API, 方便用戶對系統進行擴展。
輕松的部署功能
Harbor 提供了 online、offline 安裝, 除此之外還提供了 virtual appliance 安裝
系統要求:


docker 1.10.0 以上版本,安裝文檔:https://docs.docker.com/engine/installation/
docker-compose 1.6.0 以上版本,安裝文檔:https://docs.docker.com/compose/install/
軟件安裝:
yum -y install certbot libevent-devel gcc libffi-devel python-devel openssl-devel python2-pip
yum -y install docker
啟動 docker,使用如下命令行:
systemctl start docker
systemctl enable docker
使用 pip 方式安裝 docker-compose
,使用如下命令:
pip install -U docker-compose
查看 docker-compose 的版本,如下:
docker-compose version
離線版本下載:
https://github.com/vmware/harbor/releases
以v1.1.2版本為例
wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
mv harbor-offline-installer-v1.1.2.tgz /data/ && cd /data/
tar xvf harbor-offline-installer-v1.1.2.tgz
mkdir -p /data/harbor/cert
切換工作路徑切證書存放目錄
cd /data/harbor/cert
創建CA根證書

openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout ca.key -x509 -days 365 \
-out ca.crt -subj "/C=CN/L=Shenzhen/O=lisea/CN=harbor-registry"
生成一個證書簽名, 設置訪問域名為harbor.test.com
openssl req -newkey rsa:4096 \
-nodes -sha256 -keyout harbor.test.com.key \
-out server.csr -subj "/C=CN/L=Shenzhen/O=lisea/CN=harbor.test.com"
生成主機證書
openssl x509 -req -days 365 \
-in server.csr -CA ca.crt -CAkey ca.key \
-CAcreateserial -out harbor.test.com.crt
配置文件修改:
vim harbor.cfg
# 根據需求進行配置,至少修改 host 改為 harbor 服務器的 IP 地址或者域名
hostname = harbor.test.com
ui_url_protocol = https
# 郵件相關信息配置,如忘記密碼發送郵件
email_server = smtp.163.com
email_server_port = 25
email_username = [email protected]
email_password = xxxxxx
email_from = docker <[email protected]>
email_ssl = false
# 設置證書路徑
ssl_cert = /data/harbor/cert/harbor.test.com.crt
ssl_cert_key = /data/harbor/cert/harbor.test.com.key
通過自帶腳本一鍵安裝
sh install.sh
通過瀏覽器訪問管理 [提前設置本地hosts文件本地重定向至harbor服務器IP]
https://harbor.test.com
用戶默認為 admin
密碼默認為 Harbor12345
客戶端使用測試
創建 public 項目, 訪問級別選擇公開
技術分享

創建倉庫證書存放目錄
mkdir /etc/docker/certs.d/harbor.test.com
從 harbor 服務器獲取證書至倉庫證書目錄
scp [email protected]:/data/harbor/cert/ca.crt /etc/docker/certs.d/harbor.test.com/ca.crt
用戶登陸[ 本地需要做 hosts harbor.test.com 域名重定向至 harbor 服務器 IP]
docker login -u admin -p Harbor12345 harbor.test.com
提示"Login Succeeded"既成功
docker下載redis鏡像:
docker pull redis
使用docker tag將鏡像改名
技術分享

上傳鏡像到harbor倉庫
技術分享

登錄web查看鏡像是否上傳成功
技術分享

刪除本地鏡像
docker rmi harbor.test.com/public/redis:v1.0.0
從harbor中下載鏡像
docker pull harbor.lisea.cn/public/redis:v1.0.0
其他說明:
停止 Harbor 服務:
$ docker-compose stop
啟動 Harbor 服務:
$ docker-compose start
如果需要修改 Harbor 的配置,首先需要停掉正在運行的 Harbor 實例,更新 harbor.cfg 文件,再次運行install.sh
$ docker-compose down
$ vim harbor.cfg
$ sh install.sh
刪除 Harbor 容器,保存鏡像文件和 Harbor 的數據庫文件:
$ sudo docker-compose rm
刪除 Harbor 的數據庫信息和鏡像文件 (一般為了純凈安裝):
$ rm -r /data/database
$ rm -r /data/registry
默認情況下,regirstry 的數據被持久化到目標主機的/data/目錄,當 Harbor 的容器被刪除或者重新創建的時候,數據不會有任何改變

Docker 私有倉庫 Harbor registry 安全認證搭建 [Https]