一、常見的docker私有庫
常見的docker私有庫有:Portus、Harbor、AppHouse等。其中,Harbor是由VMware公司中國團隊為企業使用者設計的Registry server開源項目,包括了權限管理(RBAC)、LDAP、審計、管理界面、自我注冊、HA等企業必需的功能,同時針對中國使用者的特點,設計鏡像複制和中文支援等功能,本教程主要就是講解Harbor的安裝步驟和使用方法。
二、Harbor安裝步驟
1、環境準備
安裝Harbor之前,需要預先安裝需要的其他軟體,根據官方文檔可以看出,需要以下三個:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38FdsYkRGZkRG9lcvx2bjxiNx8VZ6l2cs0TPRplb5YFZ2hmMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2gDNxQDM1ETM5IDMxkTMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
-
Docker engine 安裝
docker的安裝參考《CentOS7.0環境安裝docker》
- Docker Compose 安裝
- 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
- 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版本:
2、把壓縮包放到CentOS系統的指定目錄,并解壓
tar xvf harbor-offline-installer-v1.9.1.tgz
解壓後:
3、修改配置檔案
修改harbor.yml配置檔案中的hostname參數,其他的都使用預設配置。
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。
5、登入Harbor管理界面
Harbor管理界面,預設的使用者名:admin,密碼:Harbor123456。如果在進行harbor.yml配置檔案修改時,修改了相關配置,就需要使用相關參數進行登入。
三、應用
1、建立Harbor使用者
2、建立Harbor項目
3、添加項目使用者
4、檢視倉庫推送指令
5、推送下面選中的鏡像推送到私有倉庫。
具體操作請參考《docker常用指令》。
-
首先登入(私有類型的倉庫需要)
如果倉庫是私有的話,需要登入,否則會出現如下提示:
docker私有庫Harbor的搭建和應用 登入指令:
ip位址對應的是倉庫位址,-u參數對應的是使用者名。
docker login 192.168.1.8 -u=hsh
執行指令後,再輸入密碼,即可登入,如下圖所示。
3. 重命名鏡像
docker tag goharbor/nginx-photon:v1.9.1 192.168.1.8/test/nginx-photon:v-test
執行重命名指令後,多了一個鏡像記錄。
2. 推送鏡像到私有庫
執行下列指令,出現下圖所示,說明鏡像推送成功。
docker push 192.168.1.8/test/nginx-photon:v-test
四、常見問題
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通路。具體步驟:
- 通過下面指令修改配置
vim /usr/lib/systemd/system/docker.service
-
增加參數
增加下列參數即可,其中IP位址是Harbor部署的伺服器所在的IP。
--insecure-registry IP
3. 重新整理參數、重新開機服務
systemctl daemon-reload
systemctl restart docker
五、參考文檔:
1、《Docker 私有倉庫方案比較與搭建》
2、《Harbor官方教程》
3、 《推送鏡像異常問題解決》