一、Harbor本地镜像库特点
Harbor 是由 VMware 开源的企业级容器镜像仓库系统,基于 Docker Registry 扩展了以下核心功能:
-
企业级权限管理
- 支持基于角色的访问控制(RBAC),可按项目分配用户权限(如 Guest、Developer、Admin 等),满足多团队协作需求。
- 集成 LDAP/AD 身份认证,可对接企业现有用户体系。
-
镜像生命周期管理
- 提供图形化界面管理镜像,支持删除无用镜像并回收存储空间。
- 支持镜像复制功能,可同步镜像到远程 Harbor 实例,实现灾备或多地部署。
-
安全与审计
- 记录所有操作的审计日志,满足合规性要求。
- 支持镜像漏洞扫描(需集成 Clair 等工具),保障镜像安全性。
-
扩展性与集成
- 提供 RESTful API,便于与 CI/CD 工具(如 Jenkins、GitLab)集成。
- 支持 HTTPS 加密通信,保障数据传输安全。
二、Harbor 安装部署
1. 环境准备
-
硬件要求:建议至少 2 核 CPU、4G 内存、40G 存储(如 PVE 虚拟机)。
-
软件依赖:
- Docker 1.10+ 和 Docker Compose 1.6+。
- 配置 Docker 加速器(如阿里云)加速镜像下载。
2. 安装步骤
-
在线安装:
ruby# 下载安装包 wget https://github.com/goharbor/harbor/releases/download/v2.4.1/harbor-online-installer-v2.4.1.tgz tar zxvf harbor-online-installer-v2.4.1.tgz cd harbor # 修改配置文件 vi harbor.yml # 设置主机名、数据库密码等 # 执行安装 ./install.sh ``` ```
-
离线安装 :
下载离线包(如
harbor-offline-installer-v2.4.1.tgz
),解压后按上述步骤配置并安装。
3. 配置 HTTPS(可选)
-
生成 SSL 证书(如使用 Let's Encrypt)。
-
修改
harbor.yml
中
https
相关配置,重启服务。
bash
内网虚拟机部署:
https://goharbor.io/docs/2.2.0/install-config/configure-https/
1.公司内网如果平时配置了docker的代理去dockerhub拉镜像的话,想要登陆成功私有仓库,需要移除/etc/systemd/system/docker.service.d目录下的http-proxy.conf和https-proxy.conf,否则内网的xx.xx.xx.xx:80在docker login的时候就到公网去找这个ip了,就会40x。
2./etc/docker/daemon.json增加一行如下:
{
"registry-mirrors": [
"https://c5577d9e1d5d49ba81ff33f7309cefa9.mirror.swr.myhuaweicloud.com",
"https://docker.mirrors.sjtug.sjtu.edu.cn",
"https://dockerproxy.com",
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://hub2.nat.tf",
"https://docker.1panel.dev",
"https://docker.1panelproxy.com",
"https://docker.cloudlayer.icu"
],
"insecure-registries": [
"http://192.168.6.128:8083"
]
}
systemctl daemon-reload
service docker restart
docker login -u admin -p admin123 192.168.6.128:8083
docker tag dpanel/dpanel:latest 192.168.6.128:8083/test/dpanel:latest
docker push 192.168.6.128:8083/test/dpanel:latest
三、Harbor 使用方法
1. Web 管理界面
-
访问
http(s)://<Harbor_IP>
,默认账号密码为
admin/Harbor12345
。
-
项目管理:
- 创建公开/私有项目,分配用户角色(如开发人员 Push/Pull 权限,测试人员仅 Pull 权限)。
2. 客户端操作
-
推送镜像:
xml# 登录 Harbor docker login <Harbor_IP> -u <用户名> -p <密码> # 标记本地镜像 docker tag <本地镜像名> <Harbor_IP>/<项目名>/<镜像名>:标签 # 推送镜像 docker push <Harbor_IP>/<项目名>/<镜像名>:标签 ``` ```
-
拉取镜像:
javascriptdocker pull <Harbor_IP>/<项目名>/<镜像名>:标签 ``` ```
3. 客户端配置(HTTP 模式)
-
修改
/etc/docker/daemon.json
,添加:
go{ "insecure-registries": ["<Harbor_IP>:端口"] } ``` ```
-
重启 Docker 服务:
systemctl restart docker
。
四、总结
Harbor 通过权限管理、镜像复制、安全审计等功能,解决了企业级镜像仓库的痛点。部署时需注意网络配置和 HTTPS 设置,使用时需合理分配用户权限并配置客户端信任列表。更多细节可参考官方文档或上述引用的 CSDN 博客。