文章目錄
- 搭建Harbor鏡像倉庫 HTTP Insecure Registry
-
- 前言
- 參考文檔
- 前置條件
- 安裝配置過程
-
- 安裝Docker
- 安裝Docker Compose
- 下載下傳Harbor安裝包
- 安裝Harbor
-
- 修改harbor.cfg配置檔案
- 安裝Harbor
- 通路Harbor
- 配置Harbor
-
- 關閉自行注冊
- 設定為隻能由admin建立project
- 配置垃圾回收政策
- 關閉/啟動Harbor
- 使用Harbor
-
- 配置Insecure Registry
- 推送鏡像到Harbor
- 從Harbor中拉取鏡像
- 後記
搭建Harbor鏡像倉庫 HTTP Insecure Registry
前言
在開發容器化應用時候,出于網絡傳輸和安全的考慮,十分有必要在内網搭建一個私有鏡像倉庫(private registry)。
Docker本身提供了Docker registry來搭建簡單的私有鏡像倉庫,但是功能比較單一,難以滿足“企業級鏡像倉庫”的需要。
關于搭建和使用Docker registry參見:
- 一鍵搭建Docker private registry并使用阿裡雲鏡像加速器
- Docker registry V2 推送鏡像、拉取鏡像、搜尋鏡像、删除鏡像和垃圾回收
Harbor是VMWare的一個開源項目,對Docker registry進行了擴充,實作了企業級鏡像倉庫的功能。
關于Harbor的更多介紹參見:
- Harbor官網:https://goharbor.io/
- Harbor in GitHub:https://github.com/goharbor/harbor
本文介紹了搭建Harbor鏡像倉庫(HTTP Insecure registry)的過程,關于搭建HTTPS Secure registry的過程将在另外的文章中介紹。
參考文檔
- Harbor安裝配置指南:https://github.com/goharbor/harbor/blob/master/docs/installation_guide.md
- Harbor使用者指南:https://github.com/goharbor/harbor/blob/master/docs/user_guide.md
前置條件
- CentOS7
- 聯網
安裝配置過程
這裡選擇的是Harbor in Docker的部署方式,需要先安裝Docker和Docker Compose。
安裝Docker
參見下面文章安裝Docker,并使用阿裡雲鏡像加速器:
- CentOS7用阿裡雲Docker Yum源線上安裝Docker 17.03.2
- Docker國内Yum源和國内鏡像倉庫
安裝Docker Compose
參見:
- 線上安裝Docker Compose
下載下傳Harbor安裝包
在Harbor GitHub上的Release頁面 上下載下傳Harbor offline installer。
安裝Harbor
把下載下傳的Harbor offline installer安裝包上傳到伺服器上一個新的空目錄,解壓安裝包:
tar xvf harbor-offline-installer-v1.7.1.tgz
mv harbor /opt/
修改harbor.cfg配置檔案
在安裝Harbor前需要先修改
harbor.cfg
配置檔案,因為這裡隻是建立一個簡單的HTTP Insecure Registry,是以隻需要修改:
hostname = <your_server_ip>
db_password = <your_db_password>
Harbor Admin的密碼和一些系統的配置可以等到啟動Harbor後再在Harbor管理頁面修改。
安裝Harbor
在Harbor根目錄下運作
sudo ./install.sh
來安裝Harbor。
如果沒有先安裝好Docker和Docker Compose,則可能會安裝失敗。
安裝成功後運作
docker-compose ps
檢查Harbor是否啟動成功。
通路Harbor
在浏覽器中輸入
http://<harbor_host_name>
就可以通路Harbor了。
Harbor Admin的預設密碼是
admin/Harbor12345
。
在頁面右上角可以選擇語言。
配置Harbor
安裝并啟動Harbor後還需要對Harbor做一些配置。
對Harbor的更多配置說明請參考Harbor User Guide
關閉自行注冊
Harbor預設允許自行注冊,可以用admin登入後來關閉自行注冊功能:
- 打開Configuration -> Authentication
- 取消勾選“Allow Self-Registration”
關閉自行注冊功能後,首頁上就看不到賬号注冊的連結了。
如果采用的是預設的
db_auth
模式,則需要通過admin來建立Harbor新賬号。
設定為隻能由admin建立project
Harbor通過project來管理鏡像,預設所有賬号都可以建立project,可以用admin登入後設定成隻能由admin建立project:
- 打開Configuration -> System Settings
- 選擇Project Creation為“Admin Only”
配置垃圾回收政策
在Harbor中删除鏡像後,并不會真的從磁盤上删除掉鏡像檔案。
為了節約磁盤空間,需要定期執行垃圾回收。
使用admin登入後來配置垃圾回收政策:
- 打開Configuration -> Garbage Collection
- 點選Edit按鈕,選擇Garbage Collection Schedule
關閉/啟動Harbor
在Harbor根目錄下運作以下指令:
# 關閉Harbor
docker-compose stop
# 啟動Harbor
docker-compose start
使用Harbor
在Harbor頁面上的使用比較簡單,這裡主要講在指令行下通過Docker指令來操作鏡像倉庫。
配置Insecure Registry
在Harbor HTTP Insecure Registry模式時,必須先配置Docker允許使用Insecure Registry。
編輯
/etc/docker/daemon.json
,增加
insecure-registries
的配置。
一個包含了阿裡雲鏡像加速器和指向Harbor HTTP Insecure Registry的Docker daemon.json示例:
{
"registry-mirrors": ["https://xxx.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.37.170"]
}
注意:insecure-registries的值需要和中的hostname保持一緻,否則會
harbor.cfg
失敗,比如上面的例子中不能寫成
docker login
。
http://192.168.37.170
重新加載daemon,并重新開機Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
運作
docker info
翻到最後檢視Registry Mirrors和Insecure Registries是否配置正确。
運作
docker login
輸入Harbor賬号的使用者名和密碼登入。
推送鏡像到Harbor
在
docker login
成功後可以将一個現成的鏡像push到Harbor的project中。
将busybox:latest鏡像push到Harbor的myproject項目中的示例:
# Retag
docker tag busybox:latest 192.168.37.170/myproject/busybox:latest
# Push
docker push 192.168.37.170/myproject/busybox:latest
從Harbor中拉取鏡像
在
docker login
成功後可以從Harbor的project中拉取指定鏡像,比如:
docker pull 192.168.37.170/myproject/busybox:latest
後記
本文隻是講了Harbor HTTP Insecure Registry這種最為簡單的模式。
如何搭建Harbor HTTPS Secure Registry請參考:
- 配置Harbor鏡像倉庫HTTPS Secure Registry
如何對鏡像進行安全掃描則在後續文章中再進行介紹。