教你如何用Harbor 私有镜像仓库搭建
? ? 一、Harbor是什么??
Docker有個形象的比喻叫集裝箱,kubernetes是舵手,而Harbor是港灣,其實是用來保存容器鏡像的倉庫,企業使用docker、kubernetes時,一般都需要個私有鏡像倉庫的,Harbor就是其中的佼佼者。官方的解釋:Harbor是一個用于存儲和分發Docker鏡像的企業級Registry服務器。
? ? 二、Harbor的架構 ? ?
harbor的整體架構還是很清晰的,下面簡單介紹一下,下圖展示harbor主要的功能組件和信息流向。
Proxy: Harbor的registry、UI、token services等組件,都處在一個反向代理后邊。該代理將來自瀏覽器、docker clients的請求轉發到后端服務上。
Registry: 負責存儲Docker鏡像,以及處理Docker push/pull請求。因為Harbor強制要求對鏡像的訪問做權限控制, 在每一次push/pull請求時,Registry會強制要求客戶端從token service那里獲得一個有效的token。
Core services: Harbor的核心功能,主要包括如下3個服務:
UI: 作為Registry Webhook, 以圖像用戶界面的方式輔助用戶管理鏡像。1) WebHook是在registry中配置的一種機制, 當registry中鏡像發生改變時,就可以通知到Harbor的webhook endpoint。Harbor使用webhook來更新日志、初始化同步job等。2) Token service會根據該用戶在一個工程中的角色,為每一次的push/pull請求分配對應的token。假如相應的請求并沒有包含token的話,registry會將該請求重定向到token service。3) Database 用于存放工程元數據、用戶數據、角色數據、同步策略以及鏡像元數據。
Job services: 主要用于鏡像復制,本地鏡像可以被同步到遠程Harbor實例上。
Log: 負責收集其他模塊的日志到一個地方
? ?三、Harbor使用 ? ?
1、安裝 docker
1.1 安裝依賴
## 安裝依賴 yum install -y yum-utils device-mapper-persistent-data lvm21.2 添加阿里云yum源
yum-config-manager \ --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo1.3 更新yum源及安裝Docker-ce
yum?update?-y??&&?yum?install?-y?docker-ce1.4 編寫daemon.json配置文件
mkdir /etc/docker ## 創建 /etc/docker 目錄 ## 配置 daemon. insecure-registries 是后續用來訪問 harbor 私有倉庫的, 表示可信任的倉庫地址 ## 192.168.3.155:9999為harbor私服的地址和端口 cat > /etc/docker/daemon.json <<eof< span=""> {"exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "registry-mirrors": ["https://tosnxdv7.mirror.aliyuncs.com"], "log-opts": {"max-size": "100m"}, "insecure-registries": ["192.168.3.193"] } EOF</eof<>1.5 重啟docker服務
systemctl?daemon-reload?&&?systemctl?restart?docker?&&?systemctl?enable?docker2、安裝 docker-compose
wget https://linux-soft-ware.oss-cn-shenzhen.aliyuncs.com/docker-compose chmod +x docker-compose mv docker-compose /usr/local/bin3、安裝 Harbor
3.1 下載Harbor
wget?https://github.com/goharbor/harbor/releases/download/v2.1.4/harbor-offline-installer-v2.1.4.tgz3.2 解壓
## 創建解壓目錄 mkdir /usr/app ## 解壓到指定目錄 tar xf harbor-offline-installer-v2.1.4.tgz ?-C /usr/app3.3 編輯harbor.yml配置文件
vi /usr/app/harborcp harbor.yml.tmpl harbor.ymlvim /usr/app/harbor.ymlhostname: 192.168.3.193 # 修改為自己的IP地址或者域名 # http related config ## 刪除下面的https配置 http:# port for http, default is 80. If https enabled, this port will redirect to https portport: 80 # 修改登錄Harbor的web端密碼(用于管理界面的登錄) harbor_admin_password: 1234564、安裝 harbor
4.1 安裝Harbor
./harbor/install.sh4.2 訪問 harbor
輸入 https://192.168.3.193, 輸入 admin/12345
5、測試能否登陸私有倉庫
5.1 在客戶端編輯Docker配置文件
vi /etc/docker/daemon.json### 編輯內容如下: }"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","registry-mirrors": ["https://tosnxdv7.mirror.aliyuncs.com"],"log-opts": {"max-size": "100m"},## 添加Harbor倉庫的地址(必須添加)"insecure-registries": ["192.168.3.193"] }5.2 加載配置文件重啟Docker服務
systemctl?daemon-reload?&&?systemctl?restart?docker5.3 使用docker login測下,是否成功
docker login 192.168.3.193 Username: admin Password: 1234566、測試鏡像上傳和下載
6.1 docker tag打標簽
docker?tag?nginx:latest?192.168.3.193/test/nginx:V26.2 docker push 推送鏡像到倉庫
?docker?push?192.168.3.193/test/nginx:V26.3 docker pull 拉取鏡像
docker?pull?192.168.3.193/test/nginx:V2總結
以上是生活随笔為你收集整理的教你如何用Harbor 私有镜像仓库搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我们需要什么样的开源教育?
- 下一篇: AgileConfig - 轻量级配置中