前兩天測試服務docker化并k8s布署時,出于友善,使用了docker hub。由于我們的代碼是要放到鏡像裡的,通過運作容器,便能擷取我們的全部代碼,風險很大。是以我們決定進行私有化的鏡像部署。
經過調研,決定使用harbor這個開源項目。
項目介紹
harbor git 位址
版本 harbor-offline-installer-v2.1.0.tgz
優點:
本身自代 docker 私有倉庫
支援基于角色的權限管理
支援 LDAP
安裝
harbor支援k8s的helm安裝和本地安裝,我這次先擇的安裝方式是本地安裝。
我的運作環境是 Centos7.2。
0. 前置條件
需要安裝docker并運作
yum install docker # 安裝docker
systemctl start docker # 運作docker服務
需要安裝docker-compose
yum install docker-compose
1. 下載下傳安裝包
直接選擇編譯好的包
這裡有兩個包Harbor offline installer 和 Harbor online installer,兩者的差別的是 Harbor offline installer 裡就包含的 Harbor 需要使用的鏡像檔案。
下載下傳成功,并解壓
cd /usr/local/src
wget https://github.com/goharbor/harbor/releases/download/v2.1.0/harbor-offline-installer-v2.1.0.tgz
tar -zxvf harbor-offline-installer-v2.1.0.tgz
進入解壓的目錄,并 ls
harbor.v1.7.1.tar.gz 裡就是 Harbor 用到的鏡像
2. 編輯配置檔案
vim harbor.yml
hostname: 192.168.33.70 #本機ip
customize_crt: false #可以http通路
為了可以http通路 需要編輯
vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://a4fyjv0u.mirror.aliyuncs.com"],
"insecure-registries": [
"192.168.33.70"
]
}
重新開機docker
systemctl restart docker
docker-compose restart
3. 運作
修改完配置檔案後,運作 ./prepare,它會哪所配置檔案修改一檔案
運作 ./install.sh
運作成功,docker ps 檢視,可以看到服務已經起來了。
如果報錯https那把相關配置注釋即可
# https related config
#https:
# https port for harbor, default is 443
# port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
4. 常用管理指令
停止服務: docker-compose stop
開始服務: docker-compose start
GUIl界面使用
1. 建立項目
建立一個項目,命名為 ainirobot,并設定通路級别為公開。
這裡的項目就是一私有化的Docker鏡像倉庫。
上傳鏡像
1. 修改Docker配置
docker 預設是按 https 請求的,由于我搭的私有庫是 http 的,是以需要修改 docker 配置,将信任的庫的位址寫上
修改檔案 /etc/docker/daemon.json
“192.168.33.70"
]
然後重新開機docker
2. 制作鏡像
将 mongo 制作成一個私有鏡像, mongo 為我之前從 docker hub 上拉取的鏡像。
docker tag mongo A.B.C.D/ainirobot/nebulae_mongo:0.0.1
3. 上傳
1. 先登陸私有庫
docker login A.B.C.D
2. PUSH
docker push A.B.C.D/ainirobot/nebulae_mongo:0.0.1
3. 結果
從背景已經能看到這個鏡像了
推薦
完成了私有庫的搭建後,可以再安裝一個k8s叢集背景管理系統(wayne系統介紹)。