寫在前面
Harbor 教程:https://www.hxstrive.com/subject/harbor/3126.htm
harbor默認管理員賬號:admin
harbor默認管理員密碼:Harbor12345
準備
1、更新yum repo,使用阿里云源冕茅。
- 備份內(nèi)置repo源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
- 從阿里云更新下載源
curl -o /etc/yum.repos.d/CentOS-Base.repo http:``//[mirrors.aliyun.com/repo/Centos-7.repo](http://mirrors.aliyun.com/repo/Centos-7.repo)
- 清理舊的更新源緩存,并更新新的更新源緩存
yum clean all
yum makecache
開始安裝Harbor 谎懦,安裝方式有兩種:
在線安裝:從 Docker Hub 下載 Harbor 相關(guān)鏡像,因此安裝軟件包非常小溃斋,安裝耗時依賴網(wǎng)速界拦。
離線安裝:安裝包包含部署的相關(guān)鏡像,安裝包比較大(下面采用離線安裝)梗劫。
1享甸、從 Harbor 官方網(wǎng)站(https://github.com/goharbor/harbor/releases)下載合適版本的 Harbor 離線安裝包。例如梳侨,下載 harbor-offline-installer-v1.10.19.tgz蛉威,如下圖:
1、登錄服務(wù)器走哺,今入/opt 目錄蚯嫌。
- 下載較慢,耐心等待丙躏。
- 如果實在太慢择示,可以先下載到本地,再上傳到服務(wù)器目錄晒旅。
wget https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz
3栅盲、由于 Harbor 是基于 Docker 和 Docker Compose 的,所以需要先安裝它們:
安裝 Docker
-
安裝依賴工具:sudo yum install -y yum-utils
image.png 使用以下命令來設(shè)置穩(wěn)定的倉庫:
使用阿里云倉庫敢朱,推薦:
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安裝最新版本的 Docker-CE 和 containerd 執(zhí)行如下命令:
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
查看docker版本:docker version
image.png 配置Docker 倉庫地址
查看 /etc/docker 下面是否存在 daemon.json 文件,這是一個 JSON 格式的文件摩瞎。如果存在拴签,則直接修改;如果不存在旗们,則創(chuàng)建一個新的 daemon.json 文件
將下面內(nèi)容寫入到 daemon.json 文件
<pre>{
"registry-mirrors": [ "https://docker.m.daocloud.io" ]
}
- 然后重啟docker服務(wù)
systemctl restart docker #重啟docker服務(wù)
systemctl enable docker #配置開機自啟
4蚓哩、安裝 docker-compose
- 推薦使用官方安裝腳本進行安裝,步驟如下:
- 運行以下命令下載并安裝 Docker Compose:(下載可能會有一些慢上渴,耐心等待一下)
[root@localhost docker]# sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0
100 60.8M 100 60.8M 0 0 58552 0 0:18:09 0:18:09 --:--:-- 71641
- 賦予執(zhí)行權(quán)限:
<pre>[root@localhost bin]# sudo chmod +x /usr/local/bin/docker-compose</pre>
- 查看版本信息
<pre>[root@localhost ~]# docker-compose --version
Docker Compose version v2.29.7
5岸梨、解壓harbor安裝包:
[root@localhost opt]# tar -xvzf harbor-offline-installer-v2.0.0.tgz
harbor/harbor.v2.0.0.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
6喜颁、配置harobr
- 進入解壓后的 Harbor 目錄,找到 harbor.yml.tmpl 文件曹阔,將其復(fù)制為 harbor.yml(如果已經(jīng)存在 harbor.yml 文件半开,則直接修改,或者先備份該文件):
[root@localhost harbor]# cp harbor.yml.tmpl harbor.yml
修改配置如下
-
注意赃份,可以將上面的“hostname”修改為你的主機 IP 地址寂拆。
image.png -
修改后如下:
image.png
7、安裝 Harbor
執(zhí)行 prepare 腳本
在 Harbor 安裝過程中抓韩,prepare 腳本是一個非常重要的步驟纠永。它主要用于生成配置文件和證書等相關(guān)操作。這個腳本會根據(jù) harbor.yml 配置文件中的內(nèi)容谒拴,為 Harbor 的部署做前置準備工作尝江。例如:
[root@localhost harbor]# ./prepare
prepare base dir is set to /opt/harbor
Unable to find image 'goharbor/prepare:v2.0.0' locally
v2.0.0: Pulling from goharbor/prepare
836b6c765c93: Pull complete
7d2118468cd6: Pull complete
ec361edd3da3: Pull complete
96018abb76c1: Pull complete
93a6102d0a5d: Pull complete
5ee1acfc0e3d: Pull complete
2b88cfa69516: Pull complete
5081e058f91e: Pull complete
Digest: sha256:529596e839c481354f9652b3f598b0aa634c57015840d047295dc65a27ffd880
Status: Downloaded newer image for goharbor/prepare:v2.0.0
WARNING:root:WARNING: HTTP protocol is insecure. Harbor will deprecate http protocol in the future. Please make sure to upgrade to https
Generated configuration file: /config/log/logrotate.conf
Generated configuration file: /config/log/rsyslog_docker.conf
Generated configuration file: /config/nginx/nginx.conf
Generated configuration file: /config/core/env
Generated configuration file: /config/core/app.conf
Generated configuration file: /config/registry/config.yml
Generated configuration file: /config/registryctl/env
Generated configuration file: /config/registryctl/config.yml
Generated configuration file: /config/db/env
Generated configuration file: /config/jobservice/env
Generated configuration file: /config/jobservice/config.yml
Generated and saved secret to file: /data/secret/keys/secretkey
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir
沒有拋出錯誤信息,腳本執(zhí)行成功英上。
8炭序、執(zhí)行 install 腳本
Harbor 的 install.sh 腳本是 Harbor 安裝過程的核心腳本。它主要負責協(xié)調(diào)各個組件的安裝和配置過程善延,將 Harbor 從一個未安裝的狀態(tài)轉(zhuǎn)變?yōu)橐粋€可以正常運行的服務(wù)少态。例如:
[圖片上傳失敗...(image-326065-1736219367989)]
[圖片上傳失敗...(image-5f9653-1736219367989)]
如果你看見了“? ----Harbor has been installed and started successfully.----”提示信息,恭喜 harbor 安裝成功了易遣。
- 若要重啟harbor彼妻,需要以守護進程模式啟動,切換到包含docker-compose.yml文件的目錄(/opt/harbor)豆茫。然后侨歉,使用以下命令來重啟Harbor:
-
docker-compose up -d
image.png
9、驗證安裝
- 使用 docker ps 查看啟動的容器揩魂,如下:
[root@localhost harbor]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf46c586e77e goharbor/harbor-jobservice:v2.0.0 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-jobservice
c8c3975a3282 goharbor/nginx-photon:v2.0.0 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp nginx
744350d97f9e goharbor/harbor-core:v2.0.0 "/harbor/entrypoint.…" About a minute ago Up About a minute (healthy) harbor-core
c4775a51d596 goharbor/harbor-db:v2.0.0 "/docker-entrypoint.…" About a minute ago Up About a minute (healthy) 5432/tcp harbor-db
5734fa2f4160 goharbor/registry-photon:v2.0.0 "/home/harbor/entryp…" About a minute ago Up About a minute (healthy) 5000/tcp registry
76c74bfd888a goharbor/redis-photon:v2.0.0 "redis-server /etc/r…" About a minute ago Up About a minute (healthy) 6379/tcp redis
c5dc3de65384 goharbor/harbor-portal:v2.0.0 "nginx -g 'daemon of…" About a minute ago Up About a minute (healthy) 8080/tcp harbor-portal
fc62007f988c goharbor/harbor-registryctl:v2.0.0 "/home/harbor/start.…" About a minute ago Up About a minute (healthy) registryctl
1296a7931f10 goharbor/harbor-log:v2.0.0 "/bin/sh -c /usr/loc…" About a minute ago Up About a minute (healthy) 127.0.0.1:1514->10514/tcp harbor-log
[root@localhost harbor]#
上面顯示了所有 goharbor 相關(guān)的容器幽邓。
10、使用瀏覽器訪問 http://xxx.xxx.102.15:80 地址火脉,如下圖:
11牵舵、賬號密碼
默認管理員賬號:admin
默認管理員密碼:Harbor12345
鏡像上傳:
1、新建項目【test-1】
2倦挂、點擊鏡像倉庫畸颅,可以看到下載和推送命令。
3方援、創(chuàng)建用戶
賬號:test-1
密碼:********
4没炒、項目中添加成員
5、在本機配置harbor倉庫http可信
- /etc/docker/daemon.json中添加:"insecure-registries":["xxx.xx.102.15"]”犯戏,重啟docker
- 不然會報錯送火,默認是走https的
- 重啟docker后拳话,必須重啟harbor,否則無法登錄种吸。
- docker-compose down
-
docker-compose up -d
image.png
6弃衍、登錄私有鏡像倉庫
docker login xx.xx.102.15 -u test-1 -p *******
7、拉取公共鏡像httpd
-
docker pull httpd
image.png 在項目中標記鏡像:
docker tag httpd:latest 172.16.102.15/test-1/httpd:latest
- 推送鏡像到當前項目:
docker push 172.16.102.15/test-1/REPOSITORY[:TAG]
-
查看harbor控制臺骨稿,可以看到鏡像已存在笨鸡。
image.png