天天看點

docker私有庫Harbor的搭建和應用

一、常見的docker私有庫

  常見的docker私有庫有:Portus、Harbor、AppHouse等。其中,Harbor是由VMware公司中國團隊為企業使用者設計的Registry server開源項目,包括了權限管理(RBAC)、LDAP、審計、管理界面、自我注冊、HA等企業必需的功能,同時針對中國使用者的特點,設計鏡像複制和中文支援等功能,本教程主要就是講解Harbor的安裝步驟和使用方法。

二、Harbor安裝步驟

1、環境準備

安裝Harbor之前,需要預先安裝需要的其他軟體,根據官方文檔可以看出,需要以下三個:

docker私有庫Harbor的搭建和應用
  • Docker engine 安裝

    docker的安裝參考《CentOS7.0環境安裝docker》

  • Docker Compose 安裝
  1. Github源
sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
           
  1. Daocloud鏡像
curl -L https://get.daocloud.io/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
           

也可以參考《官方安裝教程》

  • Openssl 安裝

    首先驗證是否安裝,如果沒有安裝通過下面指令安裝即可。

yum install openssl
           

1、下載下傳Harbor

Harbor提供了兩種安裝檔案,

  • Harbor offline installer 離線安裝
  • Harbor online installer 線上安裝

Harbor下載下傳傳送門

本教程使用的Harbor版本:

docker私有庫Harbor的搭建和應用

2、把壓縮包放到CentOS系統的指定目錄,并解壓

tar xvf harbor-offline-installer-v1.9.1.tgz 
           

解壓後:

docker私有庫Harbor的搭建和應用

3、修改配置檔案

修改harbor.yml配置檔案中的hostname參數,其他的都使用預設配置。

docker私有庫Harbor的搭建和應用

4、安裝啟動

通過下面指令進行啟動harbor。當指令執行完成,出現下圖的界面時,說明啟動成功了,這個時候可以通過浏覽器通路:192.168.1.8,打開管理界面。

./install.sh
           
注:執行該指令的時候,需要保證docker已經啟動。否則會出現報錯:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?。啟動docker的指令 systemctl start docker。
docker私有庫Harbor的搭建和應用
docker私有庫Harbor的搭建和應用

5、登入Harbor管理界面

Harbor管理界面,預設的使用者名:admin,密碼:Harbor123456。如果在進行harbor.yml配置檔案修改時,修改了相關配置,就需要使用相關參數進行登入。

docker私有庫Harbor的搭建和應用
三、應用

1、建立Harbor使用者

docker私有庫Harbor的搭建和應用

2、建立Harbor項目

docker私有庫Harbor的搭建和應用

3、添加項目使用者

docker私有庫Harbor的搭建和應用

4、檢視倉庫推送指令

docker私有庫Harbor的搭建和應用

5、推送下面選中的鏡像推送到私有倉庫。

具體操作請參考《docker常用指令》。

  1. 首先登入(私有類型的倉庫需要)

    如果倉庫是私有的話,需要登入,否則會出現如下提示:

    docker私有庫Harbor的搭建和應用

    登入指令:

    ip位址對應的是倉庫位址,-u參數對應的是使用者名。

docker login 192.168.1.8 -u=hsh
           

執行指令後,再輸入密碼,即可登入,如下圖所示。

docker私有庫Harbor的搭建和應用

3. 重命名鏡像

docker tag goharbor/nginx-photon:v1.9.1 192.168.1.8/test/nginx-photon:v-test
           
docker私有庫Harbor的搭建和應用

執行重命名指令後,多了一個鏡像記錄。

docker私有庫Harbor的搭建和應用

2. 推送鏡像到私有庫

執行下列指令,出現下圖所示,說明鏡像推送成功。

docker push 192.168.1.8/test/nginx-photon:v-test
           
docker私有庫Harbor的搭建和應用
docker私有庫Harbor的搭建和應用
四、常見問題

1、推送鏡像到私有庫時,出現如下報錯:

The push refers to repository [192.168.1.8/test/nginx-photon]
Get https://192.168.1.8/v2/: dial tcp 192.168.1.8:443: getsockopt: connection refused
           

發生原因:

Docker自從1.3.X之後docker registry互動預設使用的是HTTPS,但是搭建私有鏡像預設使用的是HTTP服務,是以與私有鏡像交時出現以上錯誤。

解決方案:

增加啟動參數,預設使用HTTP通路。具體步驟:

  1. 通過下面指令修改配置
vim /usr/lib/systemd/system/docker.service
           
  1. 增加參數

    增加下列參數即可,其中IP位址是Harbor部署的伺服器所在的IP。

--insecure-registry IP
           
docker私有庫Harbor的搭建和應用

3. 重新整理參數、重新開機服務

systemctl daemon-reload 

systemctl restart docker
           
五、參考文檔:

1、《Docker 私有倉庫方案比較與搭建》

2、《Harbor官方教程》

3、 《推送鏡像異常問題解決》