使用harbor搭建docker私有鏡像倉庫


harbor為構建docker私有鏡像倉庫的開源方案,提供了Web UI管理界面,可進行用戶權限管理、用戶操作審計等功能。

harbor部署成功后的管理界面如下所示:

可以看到harbor提供的功能相當齊全。下面就把harbor部署過程做一記錄。

本次部署是基於以下環境構建:

使用機器為Vmware Workstations創建虛擬機 

系統版本:centOS7.7

docker版本:19.03.10

下面進入hardor部署:

一、安裝docker-compose:

服務器有網絡安裝方式:

docker-compose是docker用來管理容器的一個工具,harbor的運行基於docker-compose。

安裝docker-compose:

curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

如果github安裝太慢,可使用下面的高速地址安裝:

curl -L https://get.daocloud.io/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

服務器無網絡時安裝方式:

先下載好(下載地址:https://github.com/docker/compose/releases/)后,上傳至服務器centos的/usr/local/bin目錄下

不管使用哪種方式下載,上傳到指定目錄后都需要對文件進行賦權:chmod +x /usr/local/bin/docker-compose

二、安裝harbor

1.下載並解壓

 下載安裝包:官網地址:https://github.com/vmware/harbor/releases/

 下載速度慢可用這個地址:http://harbor.orientsoft.cn/

 上傳后解壓:

tar -xzvf harbor-offline-installer-v2.0.0.tgz

2.使用OpenSSL配置harbor所需認證。

    harbor推送拉去鏡像默認是使用https。所以需要配置https認證。https認證一般有兩種方式,一種是自簽,另一種是向官方申請https證書。

    OpenSSL提供的CA(證書管理中心)可實現證書簽發的整個流程。下面將記錄設置https自簽步驟。

(1)生成密鑰和自簽證書。

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

其中x509代表生成自簽名證書,newkey表示自動生成秘鑰。執行命令后如下:

 

其中的其他信息隨意,Common Name信息填寫的就是harbor管理頁面的域名。

(2)證書簽名請求

openssl req -newkey rsa:4096 -nodes -sha256 -keyout harbor.dockerregistry.com.key -out harbor.dockerregistry.com.csr

(3)生成服務器證書

openssl x509 -req -days 365 -in harbor.dockerregistry.com.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out harbor.dockerregistry.com.crt

執行完后在本目錄分別生成以ca和harbor.dockerregistry.com為名的.crt   .key 和.srl文件。

將服務器證書即harbor.dockerregistry.com.crt和harbor.dockerregistry.com.key拷貝保存在/etc/harborcert目錄下:

cp harbor.dockerregistry.com.crt harbor.dockerregistry.com.key /etc/harborcert/

 

3.修改harbor配置文件

 從模板harbor.yml.tmpl拷貝一份文件命名harbor.yml,修改配置harbor.yml文件如下:

 

4.運行install.sh文件安裝harbor

5.安裝完成后,hosts文件中追加一下行,將ip和域名對應:

  192.168.230.132    harbor.dockerregistry.com

6.瀏覽器輸入harbor域名,進入登錄頁面https://harbor.dockerregistry.com/

   默認用戶名:admin   密碼:Harbor12345

 

harbor基本部署完成。下面我們使用docker登錄harbor,並推送鏡像至harbor中。

7.客戶端證書保存。在/etc/docker/certs.d/新建以harbor域名為命的文件夾。如下:

mkdir -p /etc/docker/certs.d/harbor.dockerregistry.com

  拷貝客戶端證書至該目錄下:

cp ca.crt /etc/docker/certs.d/harbor.dockerregistry.com

在/etc/docker目錄下編輯daemon.json文件,沒有的話新建該文件: 

vi /etc/docker/daemon.json

內容如下:

{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},"insecure-registries":[
    "harbor.dockerregistry.com"
  ]
}

其中"insecure-registries"字段對應的值就是harbor的域名。

8.使用docker登錄harbor。docker login harbor.dockerregistry.com。輸入用戶名和密碼。如下圖

 9.推送鏡像到harbor上

harbor搭建完成后會有一個默認的項目library。我們將鏡像推送至該項目即可。

首先使用tag標記鏡像,如下:

docker tag registry:latest harbor.dockerregistry.com/library/registry:latest

推送鏡像到harbor:

docker push harbor.dockerregistry.com/library/registry:latest

上傳成功。具體如下圖所示:

10.檢查推送鏡像

在harbor網頁管理頁面中查看項目library的鏡像倉庫可以看到剛剛推送的鏡像。如下圖:

harbor第一次啟動是安裝完成后自啟動的,后面若因為一些原因導致服務停止,可使用docker-compose啟動harbor,命令如下:

docker-compose up -d

至此harbor私有鏡像倉庫搭建完成。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM