企業(yè)級鏡像倉庫Harbor的部署及使用

一、環(huán)境準(zhǔn)備

CentOS 7.6 Minimal 192.168.73.135

Docker 20.10.12

Docker Compose v2.2.2

Openssl (CentOS系統(tǒng)自帶)

二、下載

下載地址

https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-offline-installer-v2.4.1.tgz

解壓

# 解壓
tar -xvf harbor-offline-installer-v2.4.1.tgz
# 移動(dòng)到安裝目錄
mv harbor /usr/local/harbor

三、HTTPS證書

CentOS服務(wù)器進(jìn)行如下操作,我這里使用域名harbor.rkyao.com訪問,生成證書命令里的域名替換成這個(gè)

1、生成證書頒發(fā)機(jī)構(gòu)證書

在生產(chǎn)環(huán)境中,您應(yīng)該從 CA 獲得證書。在測試或開發(fā)環(huán)境中,您可以生成自己的 CA。要生成 CA 證書,請運(yùn)行以下命令。

  1. 生成 CA 證書私鑰
openssl genrsa -out ca.key 4096
  1. 生成CA證書
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key ca.key \
-out ca.crt
2、生成服務(wù)器證書

證書通常包含一個(gè).crt文件和一個(gè).key文件

  1. 生成私鑰
openssl genrsa -out harbor.rkyao.com.key 4096
  1. 生成證書簽名請求(CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=harbor.rkyao.com" \
-key harbor.rkyao.com.key \
-out harbor.rkyao.com.csr
  1. 生成一個(gè)x509 v3擴(kuò)展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names

[alt_names]
DNS.1=harbor.rkyao.com
DNS.2=harbor.rkyao.com
DNS.3=harbor.rkyao.com
EOF
  1. 使用該v3.ext文件為您的Harbor主機(jī)生成證書
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in harbor.rkyao.com.csr \
-out harbor.rkyao.com.crt
3、提供證書給Harbor和Docker

生成后ca.crtharbor.rkyao.com.crtharbor.rkyao.com.key文件,必須將它們提供給HarborDocker,并重新配置Harbor以使用它們。

  1. 將服務(wù)器證書和密鑰復(fù)制到Harbor主機(jī)上的/data/cert/文件夾中
mkdir -p /data/cert/
cp harbor.rkyao.com.crt /data/cert/
cp harbor.rkyao.com.key /data/cert/
  1. 轉(zhuǎn)換harbor.rkyao.com.crtharbor.rkyao.com.cert,供Docker使用,Docker守護(hù)進(jìn)程將.crt文件解釋為CA證書,將.cert文件解釋為客戶端證書。
openssl x509 -inform PEM -in harbor.rkyao.com.crt -out harbor.rkyao.com.cert
  1. 將服務(wù)器證書、密鑰和CA文件復(fù)制到Harbor主機(jī)上的Docker證書文件夾中,您必須先創(chuàng)建適當(dāng)?shù)奈募A。
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.cert /etc/docker/certs.d/harbor.rkyao.com/
cp harbor.rkyao.com.key /etc/docker/certs.d/harbor.rkyao.com/
cp ca.crt /etc/docker/certs.d/harbor.rkyao.com/

證書文件夾的目錄結(jié)構(gòu)

/etc/docker/certs.d/
└── harbor.rkyao.com
    ├── ca.crt
    ├── harbor.rkyao.com.cert
    └── harbor.rkyao.com.key
  1. 重啟Docker
systemctl restart docker

四、Harbor配置文件

# 切換到安裝目錄
cd /usr/local/harbor
# harbor.yml為配置文件,默認(rèn)不存在,需從harbor.yml.tmpl復(fù)制出一個(gè)出來
cp harbor.yml.tmpl harbor.yml
# 打開文件
vi harbor.yml
# 修改如下配置
hostname: harbor.rkyao.com
certificate: /data/cert/harbor.rkyao.com.crt
private_key: /data/cert/harbor.rkyao.com.key
external_url: https://harbor.rkyao.com

五、安裝

# 切換到安裝目錄
cd /usr/local/harbor
# 執(zhí)行安裝腳本
sh install.sh

六、Web頁面

本地win系統(tǒng)配置hosts

192.168.73.135 harbor.rkyao.com

瀏覽器訪問 https://harbor.rkyao.com 即可打開Web管理界面,用戶名密碼為 admin/Harbor12345

七、上傳及拉取鏡像

在另一臺Linux服務(wù)器上面進(jìn)行測試

1、配置

配置hosts

vi /etc/hosts
# 添加如下內(nèi)容
192.168.73.135 harbor.rkyao.com

Docker的配置文件的目錄添加服務(wù)器證書

# 創(chuàng)建目錄
mkdir -p /etc/docker/certs.d/harbor.rkyao.com/
# 該目錄下添加三個(gè)證書文件ca.crt、harbor.rkyao.com.cert、harbor.rkyao.com.key,從安裝Harbor的機(jī)器上 /etc/docker/certs.d/harbor.rkyao.com 目錄下copy過來,參見上面 三、3、3)節(jié)
2、上傳鏡像

通過Web界面創(chuàng)建一個(gè)項(xiàng)目rkyao,先創(chuàng)建了才能上傳鏡像

Image.png

上傳鏡像

# 登錄 用戶名密碼 admin/Harbor12345
docker login --username=admin harbor.rkyao.com
# 給本地鏡像打tag,命令格式如下
docker tag [ImageId] [harbor域名]/[項(xiàng)目名]/[REPOSITORY]:[TAG]
eg: docker tag 57c4d3c46810 harbor.rkyao.com/rkyao/eureka-server:1.0.0

# 上傳鏡像
docker push [harbor域名]/[項(xiàng)目名]/[REPOSITORY]:[TAG]
eg: docker push harbor.rkyao.com/rkyao/eureka-server:1.0.0

Web頁面上查看,有剛才上傳的鏡像說明上傳成功

Image-1651417871005.png
3、拉取鏡像

拉取命令格式如下

docker pull [harbor域名]/[項(xiàng)目名]/[REPOSITORY]:[TAG]
eg: docker pull harbor.rkyao.com/rkyao/eureka-server:1.0.0

查看本地鏡像,拉取成功

Image-1651417972448.png

八、參考文檔

https://goharbor.io/docs/2.5.0/install-config/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容