Docker私有倉庫部署和管理

Harbor介紹

Harbor是vmware公司開源的企業級docker registry項目

Harbor的優勢

基於角色控制
基於鏡像的複製策略
支持LDAP/AD
圖像刪除和垃圾收集
圖形UI
審計
RESTful API

Harbor架構組成

Proxy:

通過一個前置的反向代理統一接受瀏覽器,docker客戶端的請求,並將請求轉發給後端不同的服務

Registry:

負責儲存Docker鏡像,並處理docker push/pull命令

Core services:

Harbor的核心功能,包括UI,webhook,token服務

Database:

爲core services提供數據庫服務

Log collector:

負責收集其他組件的log,供日後進行分析

Docker私有倉庫架構拓撲

Docker私有倉庫部署和管理

1、Proxy:通過一個前置的反向代理統一接受瀏覽器,Docker客戶端的請求,
並將請求轉發給後端不同的服務。
2、Registry:負責存儲 Docker 鏡像,並處理 docker push/pull 命令。
3、Core services:Harbor的核心功能,包括 UI、webhook、token 服務。
4、Database:爲 core services 提供數據庫服務。
5、Log collector:負責收集其他組件的 log,供日後進行分析。

 用戶請求通過Proxy反向代理訪問Core services,UI提供web界面,token令牌,你第一次登錄之後服務器會給你一串序列號,下次直接登錄就行,你需要下載的鏡像信息,屬性,都存放在後面的database,再通過webhook回調去registry私有倉庫調取鏡像。這一系列的操作都存放在日誌中。

實驗環境

docker私庫服務器 192.168.13.128 (docker 、Harbor 、docker-compose)
docker客戶端 192.168.13.129 (docker)

1,配置harbor私庫服務器

[root@harbor ~]# mount.cifs //192.168.100.3/LNMP-C7 /mnt/
Password for root@//192.168.100.3/LNMP-C7:  
[root@harbor ~]# cd /mnt/
[root@harbor mnt]# cd docker/
[root@harbor docker]# cp docker-compose /usr/local/bin/  ##安裝compose編排工具
[root@harbor docker]# tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/  ##解壓
[root@harbor docker]# cd /usr/local/harbor/
[root@harbor harbor]# vim harbor.cfg  ##修改harbor配置文件
hostname = 192.168.13.128  ##修改主機爲本地地址
harbor_admin_password = Harbor12345 ##harbor密碼
[root@harbor harbor]# sh /usr/local/harbor/install.sh  ##啓動harbor
[root@harbor harbor]# docker images  ##鏡像信息
[root@harbor harbor]# docker ps -a   ##查看容器信息
49b88d8877ae   vmware/registry:2.6.2-photon   "/entrypoint.sh serv…"   5000/tcp                 registry
[root@harbor harbor]# docker-compose  ps   ##容器簡易信息

2,登錄到harbor私庫web界面

Docker私有倉庫部署和管理
Docker私有倉庫部署和管理

3,在harbor服務器上登錄到私庫中

[root@harbor harbor]# docker login -uadmin -p Harbor12345 http://127.0.0.1 ##登錄私庫
[root@harbor harbor]# docker pull cirros ##從公有下載鏡像
[root@harbor harbor]# docker tag cirros 127.0.0.1/myproject-kgc/cirros:v1 ##修改標籤
[root@harbor harbor]# docker push 127.0.0.1/myproject-kgc/cirros:v1  ##上傳到私庫
##在web上訪問私庫信息

Docker私有倉庫部署和管理

4,用client客戶端登錄私庫

[root@client ~]# vim /usr/lib/systemd/system/docker.service  ##修改docker配置文件
ExecStart=/usr/bin/dockerd -H fd:// --nsecure-registry 192.168.13.128 --cont    ainerd=/run/containerd/containerd.sock
##添加私有庫服務器地址
[root@client ~]# systemctl daemon-reload   ##重載守護進程
[root@client ~]# systemctl restart docker     ##重啓容器
[root@client ~]# docker login -uadmin -pHarbor12345 http://192.168.13.128   ##登錄私庫
[root@client ~]# docker pull cirros  ##從公有倉庫下載
[root@client ~]# docker pull 192.168.13.128/myproject-kgc/cirros:v1 ##從私庫中下載鏡像
[root@client ~]# docker tag cirros:latest 192.168.13.128/myproject-kgc/cirros:v2  ##修改標籤
[root@client ~]# docker push 192.168.13.128/myproject-kgc/cirros:v2  ##上傳到私庫服務器
##用web界面查看

Docker私有倉庫部署和管理

5,管理私庫,在harbor服務器上配置

[root@harbor harbor]# docker-compose down -v  ##用compose管理關閉所有容器
[root@harbor harbor]# vim harbor.cfg  ##根據需要修改配置文件
[root@harbor harbor]# ./prepare  ##重新加載生效
[root@harbor harbor]# docker-compose up -d  ##開啓所有容器

Docker私有倉庫部署和管理

##用client登錄
[root@client ~]# docker logout http://192.168.13.128  ##先退出管理員登錄
Removing login credentials for 192.168.13.128
[root@client ~]# docker login http://192.168.13.128  ##用新建用戶登錄
Username: test01
Password: 

6,如要從新部署,需要移除服務器全部數據同時保留鏡像數據/數據庫

[root@harbor harbor]# docker-compose down -v  ##先關閉所有容器
日誌存在宿主機/var/log/harbor上
數據,鏡像刪除:
rm -rf /data/database/
rm -rf /data/registry/

謝謝閱讀!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章