Docker 私服仓库 Harbor 安装配置教程(Linux 版)
Harbor 是一个由 VMware 公司发起并开源的企业级容器镜像仓库,后成为 CNCF(云原生计算基金会)的孵化项目。它基于 Docker Distribution 构建,但在其之上扩展了*角色权限管理(RBAC)、镜像复制与同步、漏洞安全扫描、Webhook 以及审计日志等企业级核心功能。它通过提供安全的访问控制和策略,主要解决企业内部对容器镜像的存储、分发和安全治理需求,是私有化部署场景下最主流的镜像仓库选择。
以下是 Linux 环境下 Harbor 安装配置教程。
一、准备操作
1. 请确保 Linux 系统上安装了 Docker,如需安装,请结合自己的操作系统查看 Docker 安装教程:
| CentOS | Ubuntu/Debian |
|---|---|
| 点我查看 | 点我查看 |
如果成功安装 Docker,执行如下命令查看 Docker 版本信息:
1 | |
出现如下版本信息,说明 Docker 安装成功:

2. 查看 Linux 本机的 IP 地址(后续会用到):
1 | |
这里我的 IP 地址是 192.168.40.100(具体的 IP 地址以你们执行的 IP 地址为准):

3. 规划使用端口,Harbor 默认配置文件中使用的端口号是 80,这不一定符合我们的使用要求,我们需要提前规划好端口,后续我使用 8088 端口号作为 Harbor 访问端口(具体规划的端口号以你们为准,这里后续会用到)。根据不同的操作系统开放端口号:
- CentOS
1 | |
- Ubuntu/Debian
1 | |
4. 根据第2步(IP地址信息)和第3步(规划端口),编辑 /etc/docker/daemon.json 文件:
1 | |
对这个文件中添加如下配置:
1 | |
说明:如果你已经添加了
insecure-registries配置,直接将上述 IP地址:端口号 追加到 JSON 数组中即可。
实现效果图如下:

保存后,重启 Docker 服务:
1 | |
5. 本文使用 Electerm 作为远程登录和文件传输工具,需要安装的小伙伴根据自己电脑操作系统查看对应的教程(可选):
| Windows | macOS |
|---|---|
| 点我查看 | 点我查看 |
6. 由于 Harbor 安装包默认在 Github 上,在国内访问 Github 速度较慢。推荐下载安装 Watt Tookit 以实现加速访问:
| Windows | macOS |
|---|---|
| 点我查看 | 点我查看 |
7. 本文后续内容使用NDM(Neat Download Manager)下载文件,可以加快下载速度(推荐)。如需使用此款软件的小伙伴,可以查看这篇教程:下载神器NDM(Neat Download Manager)安装配置教程(适用于Windows和MacOS)
二、下载 Harbor 安装包
1. 点击右侧链接进入 Harbor 官网下载页面:点我查看
2. 这里我下载的是 2.14.4 版本安装包,点击 harbor-offline-installer-2.14.4.tgz 文件下载(离线安装包):

3. 打开 Electerm,连接到 Linux 服务器,将下载好的安装包传输到 Linux 服务器:

三、安装 Harbor
1. 解压安装包,这里我解压到了 /usr/local 目录下:
1 | |
2. 等待一段事件以后,解压完成,切换到 /usr/local/harbor 目录下:
1 | |
执行 ls 命令,此时可以查看当前目录下的内容:

3. 复制原始配置文件 harbor.yml.tmpl,新文件名 harbor.yml:
1 | |
4. 编辑配置文件 harbor.yml:
1 | |
在左下角输入 :set nu 并回车查看行号,按 I 键进入编辑模式。
5. 将第5行内容内容改为当前主机 IP 地址(在第一部分的第2步已经查看过),这里我修改为 192.168.40.100(具体 IP 地址以你们为准),修改后效果图如下:

6. 将第10行的端口号改为 8088(在第一部分第3步已经查看过),修改后的效果图如下:

7. 将第13至18行内容注掉(每行以 # 开头),本教程里面暂不提供HTTPS访问 Harbor 的方式,修改后的效果图如下:

8. 完成后,按:wq 保存并退出。
9. 执行如下脚本命令,开始安装 Harbor(预计需要3-8分钟,请耐心等待):
1 | |

10. 出现如下提示就说明 Harbor 安装成功:

11. 打开浏览器,输入 IP地址:端口号(这里我的访问地址是 http://192.168.40.100:8088,具体地址以你们为准),此时就可以访问 Harbor 登录页了:
用户名默认是 admin,密码默认是 Harbor12345,输入完成后点击登录:

12. 登录成功,点击右上角用户头像,点击修改密码:

这里密码要求包含字母大小写和数字混合,修改完成后需要重新登录 Harbor,使用新密码登录:

四、Harbor 常用操作
4.1 启动/关闭 Harbor
1. 切换到 Harbor 安装(解压目录):
1 | |
2. 使用 docker compose 命令启动 Harbor(-d 代表后台启动):
1 | |
3. 如需停止 Harbor,执行如下命令:
1 | |
4.2 创建子用户(可选)
1. 登录 admin 账号,点击左侧的用户管理,创建用户:

2. 这里我创建一个名为 iCode504 账户,用于参与后续项目的镜像的推送和拉取,完成后点击确定:
说明:
- 自定义用户名,包含英文和数字;
- 密码需要包含字母大小写、数字组成。

3. 创建一个项目,点击左侧的项目,新建项目:

这里我命名为 test_project,完成后点击确定:
说明:项目名称由小写字符、数字和
._-组成且至少1个字符并以字符或者数字开头。

4. 此时列表页新增一条刚刚创建的项目,点击进入:

5. 点击上方成员,添加用户,按照下图所示操作:


角色权限说明:
角色 说明 项目管理员 项目的最高权限,除了读写权限,还能添加/删除项目成员、启动漏洞扫描,相当于这个项目的“管理员”。 维护人员 拥有“开发者”权限,并额外具备扫描镜像、查看复制任务、删除镜像和Helm Chart等高级管理权限。 开发者 项目的读写权限,可以拉取(push)和推送(pull)镜像,是CI/CD流水线常用的角色。 访客 项目资源的只读权限,可以拉取(pull)和重新标记(retag)镜像。 受限访客 仅能拉取(pull)镜像,不能推送(push),无法看到项目日志和其他成员。
6. 成员新增成功,后续我们将登录该用户拉取/推送镜像:

4.3 拉取/推送镜像
说明:下文中
develop-engine:0.8.0是我个人使用 Dockerfile 生成的镜像,仅供参考。
1. 查看所有镜像,这里我要推送的是 develop-engine:0.8.0 镜像:
1 | |

2. 在命令行中使用 iCode504 用户登录到 Harbor(具体设置的用户名以你们为准):
1 | |
此处需要依次输入用户名和密码(密码不在控制台显示):

3. 进入前面我们创建的 Harbor 项目 test_project,点击镜像仓库,然后点击推送命令:

4. 点击右侧按钮,复制第一个命令(在项目中标记镜像):

CtrlShiftV粘贴到命令行:

将红色框中的内容替换为第一步要推送的镜像名称,修改后的效果图如下。没有问题的话直接执行即可:

5. 再执行一次 docker images 命令,此时目标镜像成功打上标签:

6. 执行 docker push 命令将镜像推送到 Harbor,效果图如下:

7. 如果出现类似下方的信息,就说明镜像推送成功了:

刷新一下 Harbor,此时就可以看到镜像成功推送到了 Harbor:

8. 要想拉取这个镜像,也很简单,点击进入刚刚推送的镜像:
说明:这里为了方便演示,我已经将原有的镜像和打标签的相关镜像删除了。

9. 点击这里的复制按钮:

粘贴到命令行并执行,此时镜像成功拉渠道了本地:
