目錄
第一步: 安裝依賴
由於harbor的需要依賴docker和docker-compose,由於docker已經安裝好,現在安裝docker-compose,官網地址爲:
https://github.com/docker/compose/releases
將下載下來的“docker-compose-Linux-x86_64”文件上傳到服務器上,然後將其複製到 /usr/local/bin,並改名爲“docker-compose”
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
添加可執行權限:
chmod +x /usr/local/bin/docker-compose
安裝成功後可以執行版本查看命令:
docker-compose -v
(注意如果path中沒有/usr/local/bin,則需要添加
vi /etc/profile
末尾追加
export PATH=/usr/local/bin:$PATH
保存後
source /etc/profile
)
第二步:下載harbor
https://github.com/goharbor/harbor/releases
下載harbor-offline-installer-v1.10.2.tgz
由於下載比較慢,現在分享百度網盤文件:
harbor-offline-installer-v1.10.2.tgz
提取碼:z2gg
第三步:生成https證書
由於使用內網服務器,無法連接外網也沒有域名:
# 創建證書目錄,並賦予權限
mkdir -p /data/docker_harbor/cert && chmod -R 777 /data/docker_harbor/cert && cd /data/docker_harbor/cert
# 生成私鑰,需要設置密碼
openssl genrsa -des3 -out harbor.key 2048
# 生成CA證書,需要輸入密碼
openssl req -sha512 -new \
-subj "/C=CN/ST=JS/L=WX/O=zwx/OU=otms/CN=192.168.100.104" \
-key harbor.key \
-out harbor.csr
echo subjectAltName = IP:192.168.100.104 > extfile.cnf
# 備份證書
cp harbor.key harbor.key.org
# 退掉私鑰密碼,以便docker訪問(也可以參考官方進行雙向認證)
openssl rsa -in harbor.key.org -out harbor.key
# 使用證書進行簽名
openssl x509 -req -days 365 -in harbor.csr -signkey harbor.key -extfile extfile.cnf -out harbor.crt
第四步:安裝
解壓下載的包
tar -zxvf harbor-offline-installer-v1.10.2.tgz
解壓後會生成harbor的文件夾
編輯harbor.yml,修改hostname、https證書路徑、admin密碼
cd harbor
vi harbor.yml
修改安裝目錄:
修改端口號:
安裝:
./install.sh
安裝完成後,顯示一下
打開https://192.168.100.104:8443
輸入admin和我們配置的密碼登錄
到這裏我們的安裝已經完成,但是我們發現,如果重啓電腦或者docker服務以後服務會掛掉
systemctl restart docker
docker ps
我們需要配置開機啓動:
第五步:配置開機啓動
新建文件:
vi /usr/lib/systemd/system/harbor.service
i
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/local/bin/docker-compose -f /root/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose -f /root/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target
systemctl enable harbor
systemctl restart harbor