Skip to content

安装单机版Harbor

1. 环境准备

硬件最低要求:

  • CPU:2核
  • 内存:4GB
  • 磁盘:100GB 软件最低要求:
  • Docker:> 20.10.0
  • Docker Compose:> 2.3
  • OpenSSL:最新即可

2. 下载Harbor安装包

Harbor提供离线和在线安装包,用户可以根据需要选择下载。离线下载地址为:https://github.com/goharbor/harbor/releasesScreenShot_2026-07-15_002613_858.png

2.1 解压离线安装包

shell
tar -xvf  harbor-offline-installer-v2.15.2.tgz

3. 配置Harbor

进入harbor安装目录,修改配置文件

shell
cd harbor
#复制 harbor的配置文件并改名harbor.yml
cp -ar harbor.yml.tmpl harbor.yml
#修改文件
vim harbor.yml

修改内容如下:

yaml
# 修改hostname,不能说localhost/127.0.0.1,否则会报错
hostname: harbor.devops.com
http:
  # 如果80端口被占用,修改http端口为90
  port: 90
# 注释掉https配置,因为我们使用的是http
#https:
# https port for harbor, default is 443
#  port: 443
# The path of cert and key files for nginx
#certificate: /your/certificate/path
#private_key: /your/private/key/path
# 放开注释external_url并修改external_url为http://harbor.devops.com:90
external_url: http://harbor.devops.com:90
# 镜像存储路径
data_volume: /data

这里使用的是Harbor的默认安装方式,它会使用内置的PostgreSQL数据库和Redis缓存服务。 配置主机解析,将harbor.devops.com解析到192.168.1.100

cmd
# 编辑windows的/hosts文件
notepad C:/Windows/System32/drivers/etc/hosts
# 添加以下内容
127.0.0.1 harbor.devops.com

重启主机解析服务

4. 安装Harbor

shell
# 做下准备工作
./prepare
sudo ./install.sh

脚本会自动拉取或加载所需的Docker镜像,并启动所有服务。 通过以下命令查看所有容器是否正常运行:

shell
# 如果看到所有容器都是healthy状态,说明安启动成功
docker ps
CONTAINER ID   IMAGE                                 COMMAND                  CREATED         STATUS                   PORTS                                     NAMES
62ddd0bcfd5c   goharbor/nginx-photon:v2.15.2         "nginx -g 'daemon of…"   7 minutes ago   Up 7 minutes (healthy)   0.0.0.0:90->8080/tcp, [::]:90->8080/tcp   nginx
171262cc54d2   goharbor/harbor-jobservice:v2.15.2    "/harbor/entrypoint.…"   7 minutes ago   Up 7 minutes (healthy)                                             harbor-jobservice
53ee546f20fd   goharbor/harbor-core:v2.15.2          "/harbor/entrypoint.…"   7 minutes ago   Up 7 minutes (healthy)                                             harbor-core
87661dac7fb0   goharbor/registry-photon:v2.15.2      "/home/harbor/entryp…"   7 minutes ago   Up 7 minutes (healthy)                                             registry
d5e37f742280   goharbor/harbor-registryctl:v2.15.2   "/home/harbor/start.…"   7 minutes ago   Up 7 minutes (healthy)                                             registryctl
e3733c61c448   goharbor/harbor-db:v2.15.2            "/docker-entrypoint.…"   7 minutes ago   Up 7 minutes (healthy)                                             harbor-db
2d60cddc1e88   goharbor/valkey-photon:v2.15.2        "valkey-server /etc/…"   7 minutes ago   Up 7 minutes (healthy)                                             redis
64d0d07661f4   goharbor/harbor-portal:v2.15.2        "nginx -g 'daemon of…"   7 minutes ago   Up 7 minutes (healthy)                                             harbor-portal
8c68ae25c19d   goharbor/harbor-log:v2.15.2           "/bin/sh -c /usr/loc…"   7 minutes ago   Up 7 minutes (healthy)   127.0.0.1:1514->10514/tcp                 harbor-log

5. 访问Harbor

打开浏览器,输入http://harbor.devops.com:90,即可访问Harbor。 ScreenShot_2026-07-15_080034_310.png 输入用户名和密码,默认是admin/Harbor12345

6. 推送镜像到Harbor

登录Harbor,点击新建项目,输入项目名称,点击创建。 ScreenShot_2026-07-15_081636_824.png 点击项目名称,即可查看项目详情。 ScreenShot_2026-07-15_081910_902.png 点击推送命令可以看到Docker镜像推送方式: ScreenShot_2026-07-15_082021_769.png 查看装有Docker的主机有哪些镜像:

shell
docker images
                                                                                                                                                                        i Info   U  In UseIMAGE                                   ID             DISK USAGE   CONTENT SIZE   EXTRA
gitlab/gitlab-ce:12.10.14-ce.0          918b5377bc06       3.12GB          879MB    U
gitlab/gitlab-runner:v12.10.3           0ac0cddab4b5        619MB          199MB    U
goharbor/harbor-core:v2.15.2            6f0498fbc679        522MB          259MB    U
goharbor/harbor-db:v2.15.2              e1e7a6d32182        718MB          354MB    U
goharbor/harbor-exporter:v2.15.2        8c12051d6434        334MB          165MB
goharbor/harbor-jobservice:v2.15.2      2f068549b1fc        486MB          241MB    U
goharbor/harbor-log:v2.15.2             25325fc182c0        458MB          226MB    U
goharbor/harbor-portal:v2.15.2          684f469dfc8a        427MB          211MB    U
goharbor/harbor-registryctl:v2.15.2     a2f7576589b5        458MB          228MB    U
goharbor/nginx-photon:v2.15.2           f4bed8d2f5ee        409MB          202MB    U
goharbor/prepare:v2.15.2                7faea28802da        545MB          266MB
goharbor/registry-photon:v2.15.2        2c730b6c088a        296MB          147MB    U
goharbor/trivy-adapter-photon:v2.15.2   2135d25681eb        975MB          486MB
goharbor/valkey-photon:v2.15.2          b1c20ea5bc7e        462MB          228MB    U
hello-world:latest                      96498ffd522e       25.9kB         9.49kB    U
my-gitlab:12.10.14-serverless-zh        c5c8ffab61f7       3.12GB          879MB

给镜像打标签

shell
docker tag hello-world:latest harbor.devops.com:90/java_team/hello-world:latest

推送镜像到Harbor

shell
jack@DESKTOP-5GC5BDK:/opt/harbor$ docker push harbor.devops.com:90/java_team/hello-world:latest
The push refers to repository [harbor.devops.com:90/java_team/hello-world]
4f55086f7dd0: Unavailable
push access denied, repository does not exist or may require authorization: authorization failed: no basic auth credentials

报错根因是:Docker推送时没有携带登录凭证。解决方法:

shell
#把jack加入docker组,彻底告别sudo
sudo usermod -aG docker jack
newgrp docker          # 或者重新登录 WSL 生效

登录Harbor,输入用户名和密码,默认是admin/Harbor12345

shell
docker login harbor.devops.com:90
Username: admin
Password:

WARNING! Your credentials are stored unencrypted in '/home/jack/.docker/config.json'.
Configure a credential helper to remove this warning. See
https://docs.docker.com/go/credential-store/

Login Succeeded

再次推送Harbor镜像: docker push harbor.devops.com:90/java_team/hello-world:latest

shell
docker push harbor.devops.com:90/java_team/hello-world:latest
The push refers to repository [harbor.devops.com:90/java_team/hello-world]
4f55086f7dd0: Pushed
latest: digest: sha256:d1a8d0a4eeb63aff09f5f34d4d80505e0ba81905f36158cc3970d8e07179e59e size: 1023

i Info Not all multiplatform-content is present and only the available single-platform image was pushed
         sha256:96498ffd522e70807ab6384a5c0485a79b9c7c08ca79ba08623edcad1054e62d -> sha256:d1a8d0a4eeb63aff09f5f34d4d80505e0ba81905f36158cc3970d8e07179e59e