搭建私有倉庫的兩種方式:
Registry
Harbor
一、registry的搭建
docker官方提供了一個搭建私有倉庫的鏡像registry,只需下載鏡像,運行容器並暴露5000端口即可。
registry服務默認會將上傳的鏡像保存在容器的 /var/lib/registry,我們將主機的 /opt/registry目錄掛載到該目錄,即可實現將鏡像保存到主機的 /opt/registry目錄了。
瀏覽器訪問 http://192.168.100.107:5000/v2,出現下面情況說明registry運行正常。
驗證:
通過推送鏡像到registry,來驗證一下。
查看本地鏡像。
給鏡像打標簽。
[root@dokcer ~]# [root@dokcer ~]# docker tag mysql:latest localhost:5000/mysql:666 標簽格式:server端 ip + 端口 + 鏡像名(必須)
通過docker push命令將鏡像推送到遠程倉庫。
訪問http://192.168.100.107:5000/v2/_catalog查看私有倉庫,就可以看到剛剛上傳的鏡像了。
打開192.168.100.102,從102往107推送鏡像。
102使用docker下載redis鏡像。
給redis打標簽並查看。
往107上推送redis鏡像。
報錯提示 不支持http只支持https 解決方法如下:
在102上執行
{
"registry-mirrors": ["https://w4uieobw.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.100.107:5000"]
}
配置完重啟docker生效。
再次推送。
推送成功后訪問http://192.168.100.107:5000/v2/_catalog,可以看到我們往倉庫推送的nginx鏡像。
二、搭建harbor私有鏡像倉庫
什么是Harbot?
VMware的開源項目https://github.com/vmware/harbor
harbor可幫助用戶迅速搭建企業級的注冊服務。它提供了管理圖形界面,基於角色的訪問控制(Role Based Access Control),鏡像遠程復制同步,AD/lDAP集成,以及審計日志等企業用戶需求的功能,同時還 原生支持中文。
組件 作用
Proxy 通過一個前置的反向代理統一接收瀏覽器、Docker客戶端的請求,並將請求轉發給后端不同的服務
Registry (核心組件)負責儲存Docker鏡像,並處理docker push/pull命令
Core services Harbor的核心功能, 包括UI、webhook、 token服務
Database 為core services提供數據庫服務
Log collector 負責收集其他組件的log,供日后進行分
安裝部署前置條件
- 在安裝harbor的服務器上先安裝docker (過程略)
下載並解壓harbor 下載:https://github.com/goharbor/harbor/releases/tag/v1.7.5
[root@dokcer ~]# tar xf harbor-offline-installer-v1.7.5.tgz -C /usr/local/
安裝docker-compse
wget "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -O /usr/local/bin/docker-compose
安裝harbor
## 編輯該文件
## hostname修改為本機IP
## 安裝harbor
從102往107上傳鏡像
## 可以看到倉庫上已經有了
## 107本地查看鏡像,此時無tomcat:666
## 從倉庫拉取鏡像
## 再次查看,拉取成功。