1. 程式人生 > 實用技巧 >部署docker倉庫-Harbor

部署docker倉庫-Harbor

Habor是由VMWare公司開源的容器映象倉庫。事實上,Habor是在Docker Registry上進行了相應的企業級擴充套件,從而獲得了更加廣泛的應用,這些新的企業級特性包括:管理使用者介面,基於角色的訪問控制 ,AD/LDAP整合以及審計日誌等,足以滿足基本企業需求。

官方地址:https://vmware.github.io

Github:https://github.com/goharbor/harbor

Harbor主要功能

Harbor元件

元件

功能

harbor-adminserver

配置管理中心

harbor-db

Mysql資料庫

harbor-jobservice

負責映象複製

harbor-log

記錄操作日誌

harbor-ui

Web管理頁面和API

nginx

前端代理,前端頁面和映象上傳/下載轉發

redis

會話

registry

映象儲存

Harbor部署

環境要求:

Harbor是VMware公司開源的企業級docker registry專案

專案地址:https://github.com/vmware/barbor

1、下載離線安裝包
2、安裝docker
3、安裝docker-compose
4、自籤TLS證書:https://github.com/vmware/harbor/blob/master/docs/configure_https.md
5、Harbor安裝與配置
6、Docker主機訪問Harbor

https://github.com/goharbor/harbor/blob/master/docs/configure_https.md

https://goharbor.io/docs/1.10/install-config/download-installer/

Harbor安裝有3種方式:

	線上安裝:從Docker Hub下載Harbor相關映象,因此安裝軟體包非常小
	離線安裝:安裝包包含部署的相關映象,因此安裝包比較大
	OVA安裝程式:當用戶具有vCenter環境時,使用此安裝程式,在部署OVA後啟動Harbor

採用離線安裝,首先下載離線安裝包:https://github.com/vmware/harbor/releases

HTTP方式部署

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version

#修改倉庫地址
cat >/etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://registry.docker-cn.com"
 ],
  "insecure-registries": [
    "192.168.10.122"
  ]
}
EOF

驗證是否成功
systemctl daemon-reload
systemctl restart docker.service
docker info

安裝docker-compose

方法一: 國內推薦方法
yum install -y epel-release
yum install -y docker-compose

方法二:
curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose 
chmod +x /usr/local/bin/docker-compose
docker-compose --version
但是此方法會經常因為網路的原因而無法安裝
 
方法三:
#1、安裝python-pip
yum -y install epel-release
yum -y install python-pip 
#2、安裝docker-compose
pip install docker-compose
docker-compose version

自籤HTTPS證書,可以不配置

mkdir /root/harbor/ssl/
cd /root/harbor/ssl/
openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout ca.key \
-x509 -days 365 -out ca.crt

生成域名證書

openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout reg.fage.com.key \
-out reg.fage.com.csr

空白處回車不用管,回車即可,注意域名出非常重要,密碼可以設定也可以不設定,

頒發證書

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

主要用到是:reg.fage.com.crt reg.fage.com.key 這個兩個檔案

開始部署

下載地址:

https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz

wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.5.tgz

解壓檔案

tar xf harbor-offline-installer-v1.7.5.tgz 
cd harbor/

編輯配置檔案

vim /root/harbor/harbor.cfg 確保下面幾個地方沒問題,如果不是有80埠,可以加上埠號,不會與其他埠衝突,例如:192.168.10.122

#不加證書http
hostname = 192.168.10.122
ui_url_protocol = http
harbor_admin_password = Harbor12345

#下面的是加證的配置https
hostname = reg.fage.com
ui_url_protocol = http
ssl_cert = ./ssl/reg.fage.com.crt
ssl_cert_key = ./ssl/reg.fage.com.key
harbor_admin_password = Harbor12345

準備配置檔案:

./prepare

開始安裝並啟動barbor

cd /root/harbor/ && ./install.sh

驗證

cd /root/harbor/ && docker-compose ps

需要狀態全部為UP才是成功的

瀏覽器輸入地址就可以訪問了

http://192.168.10.122

賬號:admin

密碼:Harbor12345

新增用

在專案中新增成員,或者管理員

上傳映象到harbor

接下來將剛才構建的映象推送到Harbor倉庫,先看看我們要推送的映象

docker images

在推送之前,需要注意第一列,這個完整格式是

regisry.stnrs.com/library/hello-word:latest

映象中心域名 專案名稱 名稱 版本

如果映象只放在本地儲存REPOSITORY寫什麼都可以,但推送到映象倉庫就必須指定倉庫中心地址。

所以,先打重新命名REPOSITORY,其實就是引用源映象標記了一個目標映象

上傳映象需要先登入,不登入會報錯

docker image tag nginx 192.168.10.122/library/nginx-1
docker login 192.168.10.122
docker push 192.168.10.122/library/nginx-1

登入網頁檢視映象

http://192.168.10.122/harbor/projects/1/repositories

加密的方式

在另外一臺主機上安裝docker後,把證書拷貝下來,放到需要使用的機器上,因為自簽證書不受信任,所以需要將證書檔案拿到客戶機去解密

首先安裝docker

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version

建立存放證書的資料夾

mkdir -p /etc/docker/certs.d/reg.fage.com

域名解析

echo "192.168.10.112 reg.fagfe.com" >>/etc/hosts

拷貝harbor上證書到客戶端證書目錄下,客戶端操作

scp [email protected]:/root/harbor/ssl/reg.fage.com.crt /etc/docker/certs.d/reg.fage.com/

如果沒有加入證書就要修改這個檔案才能登入

cat >/etc/docker/daemon.json <<EOF
{
  "registry-mirrors": [
    "https://b9pmyelo.mirror.aliyuncs.com"
 ],
  "registry-mirrors": [
    "https://registry.docker-cn.com"
  ],
  "insecure-registries": [
    "192.168.10.112"
  ]
}
EOF

重置系統環境

systemctl daemon-reload
systemctl restart docker.service

登入成功後才能上傳映象

docker login reg.fage.com
docker login 192.168.10.112
docker image tag nginx-v1 192.168.10.112/nginx-v1
docker push 192.168.10.112/nginx-v1

加密方式
docker login reg.fage.com
docker login reg.fage.com
docker image tag nginx-v1 reg.fage.com/nginx-v1
docker push reg.fage.com /nginx-v1