Harbor是vmware公司開源的企業級docker registry項目
基於角色控制 基於鏡像的複製策略 支持LDAP/AD 圖像刪除和垃圾收集 圖形UI 審計 RESTful API
經過一個前置的反向代理統一接受瀏覽器,docker客戶端的請求,並將請求轉發給後端不一樣的服務
負責儲存Docker鏡像,並處理docker push/pull命令
Harbor的核心功能,包括UI,webhook,token服務
爲core services提供數據庫服務
負責收集其餘組件的log,供往後進行分析
一、Proxy:經過一個前置的反向代理統一接受瀏覽器,Docker客戶端的請求, 並將請求轉發給後端不一樣的服務。 二、Registry:負責存儲 Docker 鏡像,並處理 docker push/pull 命令。 三、Core services:Harbor的核心功能,包括 UI、webhook、token 服務。 四、Database:爲 core services 提供數據庫服務。 五、Log collector:負責收集其餘組件的 log,供往後進行分析。
用戶請求經過Proxy反向代理訪問Core services,UI提供web界面,token令牌,你第一次登陸以後服務器會給你一串序列號,下次直接登陸就行,你須要下載的鏡像信息,屬性,都存放在後面的database,再經過webhook回調去registry私有倉庫調取鏡像。這一系列的操做都存放在日誌中。web
docker私庫服務器 192.168.13.128 (docker 、Harbor 、docker-compose) docker客戶端 192.168.13.129 (docker)
[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 ##容器簡易信息
[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上訪問私庫信息
[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界面查看
[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 ##開啓全部容器
##用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:
[root@harbor harbor]# docker-compose down -v ##先關閉全部容器 日誌存在宿主機/var/log/harbor上 數據,鏡像刪除: rm -rf /data/database/ rm -rf /data/registry/