分享程式代碼相關筆記
目前文章總數:157 篇
最後更新:2024年 12月 07日
Harbor官網進入首頁後可以看到以下:
Harbor
Our mission is to be the trusted cloud native repository for Kubernetes
Harbor 的目的是為了當 K8s 最佳的 Image 儲存庫
再往下會看到介紹
Harbor is an open source registry that secures artifacts with policies and role-based access control,
ensures images are scanned and free from vulnerabilities, and signs images as trusted.
Harbor, a CNCF Graduated project, delivers compliance, performance,
and interoperability to help you consistently and securely manage artifacts across cloud native compute platforms like Kubernetes and Docker.
Harbor 提供管理平台,並且具弱點掃瞄、成為整合 docker 與 K8s 間的協調者
※並且為開源軟體,目前社群上討論的開發者、貢獻者很多,若有設定、使用方式都有很多資源可搜尋參考
Harbor 是 VMWare 提供的開源軟體 任何人都可以免費使用
成本考量上,可以為企業減少開銷,相較於 DockerHub 的收費,則是 Harbor 的優勢
※DockerHub 官網收費說明
進入 Github 的 Release頁面,將想要下載的項目做複製超連結
以下為複製連結(使用 offline 離線版本):
https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz
關於檔案名稱補充說明:
harbor-offline-installer-v2.11.0.tgz | 離線安裝,會將所需的資料都先下載完成 |
harbor-offline-installer-v2.11.0.tgz.asc | 驗證 harbor-offline-installer-v2.11.0.tgz 是否一致 (都常可忽略) |
harbor-online-installer-v2.11.0.tgz | 連線安裝,下載後只有基本的配置資料 |
harbor-online-installer-v2.11.0.tgz.asc | 驗證 harbor-online-installer-v2.11.0.tgz 是否一致 (都常可忽略) |
進入 Ubuntu 主機後,輸入以下指令下載
sudo wget https://github.com/goharbor/harbor/releases/download/v2.11.0/harbor-offline-installer-v2.11.0.tgz
下載完成後,可以使用以下指令解壓縮:
tar -xvzf harbor-offline-installer-v2.11.0.tgz
或者使用 WinScp SSH到 Ubuntu 用介面化的方式解壓縮:
接著進入 harbor 資料夾,並且將 harbor.yml.tmpl 複製並改名為 harbor.yml
cd harbor
cp harbor.yml.tmpl harbor.yml
或者使用 WinScp SSH到 Ubuntu 用介面化的方式複製檔案,並重新命名
修改以下 3 個地方,目的是為了走 Http 內部環境機器可以使用 Harbor
1. 將自己該機器的 IP 位置貼上,例如我當前 Hyper-v 的 Ubuntu 機器 IP 配的是 172.18.236.53 |
2. Port 號調整為 5000 (或其他),目的是避開 80 常用的網頁 Port 號 |
3. Https 全部前面都加上 # 避免走到 Https |
在 Ubuntu 上可以輸入以下,查詢自己的 IP :
ip a
確保 Ubuntu 上已安裝 Docker,或輸入指令安裝
sudo apt-get install docker-compose
接著要開通 172.18.236.53:5000 的 Docker 中的 Harbor 訪問權限
如果安裝的是原生的 Docker 路徑應在 /etc/docker 下配置 daemon.json
{
"insecure-registries" : [ "172.18.236.53:5000" ]
}
如果是用 sanp 安裝 Docker 路徑應在 /var/snap/docker/{數字}/config 下配置 daemon.json
保存後,輸入以下指令重啟 Docker,使設定生效:
systemctl restart docker
輸入以下指令,檢查 Docker 的 insecure 是否有編輯的結果
docker info
回到 Ubuntu ,進入解壓縮 Harbor 的資料夾下,輸入以下指令安裝:
./install.sh
輸入 docker images 可以看到 Docker-Compose Harbor 安裝了一系列相關的 Image,並且啟動了所有容器
如果不是空的 Ubuntu 機器,會需要對 .yaml 檔案做大量的調整,空機器架設與安裝就很容易
docker images
開啟瀏覽器,輸入以下連結,可以進入首頁,然後輸入預設的帳號密碼即可進入(內部使用,可依照使用規模決定是否更改):
帳號:admin
密碼:Harbor12345
http://172.18.236.53:5000
依照以下步驟建立自己的專案,讓 Image 可以 Push上來
可以檢查該專案的推送指令,這是一個便捷的範本
docker tag SOURCE_IMAGE[:TAG] 172.18.236.53:5000/mytest/REPOSITORY[:TAG]
docker push 172.18.236.53:5000/mytest/REPOSITORY[:TAG]
我們 Pull 一個 hello-world Image 假設是我們 Build 的 Image
docker pull hello-world
再推送之前先進行登入,連到 Harbor 上
docker login 172.18.236.53:5000
輸入帳號密碼成功後應可以看到 Login Succeeded
將我們的 Image 標上 Tag, 並且需要 Harbor 的位置
docker tag hello-world:latest 172.18.236.53:5000/mytest/myimage:1.0.0
然後可以順利的Push
docker push 172.18.236.53:5000/mytest/myimage:1.0.0
我們架設的 Harbor 也順利收到 Image
後續其他內部機器若要 Pull Harbor 該檔案只要輸入以下指令:
docker pull 172.18.236.53:5000/mytest/myimage:1.0.0
可以看到成功取得該Image
並且 Harbor 上可以看到 “下載數” 會累加,確實有被使用: