一、介绍
### Harbor 简介
**Harbor** 是一个开源的企业级 Docker 镜像仓库,由 VMware 开发并贡献给 CNCF(云原生计算基金会)。它提供了镜像的存储、分发、安全管理和用户权限控制等功能,适用于企业级容器化应用的镜像管理。
---
### Harbor 的核心功能
1. **镜像管理**
- 支持 Docker 镜像的存储、拉取和推送。
- 提供镜像的版本管理,支持多版本镜像的存储和检索。
2. **用户权限管理**
- 支持多用户和用户组管理。
- 提供基于角色的访问控制(RBAC),可以细粒度地控制用户对镜像仓库的访问权限。
3. **镜像安全**
- **漏洞扫描**:集成 Clair 等工具,支持对镜像进行漏洞扫描,确保镜像的安全性。
- **内容信任**:支持 Docker Content Trust(DCT),确保镜像的来源可信。
- **镜像签名**:支持对镜像进行签名,防止镜像被篡改。
4. **高可用性和扩展性**
- 支持多节点部署,提供高可用性。
- 支持与外部存储系统(如 S3、NFS)集成,方便扩展存储容量。
5. **日志和审计**
- 记录所有操作日志,便于审计和故障排查。
- 提供操作日志的查询和分析功能。
6. **多租户支持**
- 支持多租户模式,不同团队或项目可以独立管理自己的镜像仓库。
7. **镜像复制**
- 支持跨多个 Harbor 实例的镜像复制,适用于多数据中心或混合云场景。
8. **Web 管理界面**
- 提供直观的 Web 界面,方便用户管理镜像、用户、项目等。
9. **API 支持**
- 提供完整的 RESTful API,方便与其他系统集成。
---
### 使用 Harbor 的好处
1. **集中管理镜像**
- Harbor 提供了一个集中的镜像仓库,方便企业统一管理 Docker 镜像,避免镜像分散存储。
2. **提升安全性**
- 通过漏洞扫描、镜像签名和内容信任功能,确保镜像的安全性,防止恶意镜像的使用。
3. **细粒度的权限控制**
- 支持基于角色的访问控制(RBAC),可以精确控制用户对镜像的访问权限,确保数据安全。
4. **高可用性和扩展性**
- 支持多节点部署和外部存储集成,确保系统的高可用性和扩展性,适合大规模生产环境。
5. **镜像复制**
- 支持跨多个 Harbor 实例的镜像复制,适用于多数据中心或混合云场景,确保镜像的高可用性。
6. **易于集成**
- 提供完整的 RESTful API,方便与 CI/CD 工具(如 Jenkins、GitLab CI)和容器编排平台(如 Kubernetes)集成。
7. **多租户支持**
- 支持多租户模式,不同团队或项目可以独立管理自己的镜像仓库,适合大型企业使用。
8. **操作日志和审计**
- 记录所有操作日志,便于审计和故障排查,确保操作的可追溯性。
9. **开源免费**
- Harbor 是开源项目,可以免费使用和定制,降低企业的成本。
10. **社区支持**
- 作为 CNCF 项目,Harbor 拥有活跃的社区和持续的更新,确保功能的先进性和稳定性。
---
### Harbor 的使用场景
1. **企业内部的私有镜像仓库**
- 企业可以使用 Harbor 搭建私有镜像仓库,管理内部开发的容器镜像。
2. **多团队协作**
- Harbor 支持多租户模式,适合多个团队或项目共享同一个镜像仓库。
3. **混合云环境**
- 支持镜像的跨云复制,适用于混合云或多数据中心的场景。
4. **安全敏感场景**
- 通过漏洞扫描、镜像签名和内容信任功能,确保镜像的安全性。
---
### 总结
Harbor 是一个功能强大且易于使用的企业级 Docker 镜像仓库,适用于需要私有镜像仓库、多团队协作、镜像安全管理的场景。通过 Harbor,企业可以更好地管理容器化应用的镜像,提升开发和运维效率。
二、实战部署
[root@cjr ~]# docker load -i docker-harbor-2-3-0.tar.gz
[root@cjr ~]# tar -zxvf harbor-offline-installer-v2.3.0-rc3.tgz -C /data/install-harbor/
harbor/harbor.v2.3.0.tar.gz
harbor/prepare
harbor/LICENSE
harbor/install.sh
harbor/common.sh
harbor/harbor.yml.tmpl
[root@cjr ~]# cd /data/install-harbor/
[root@cjr install-harbor]# ls
harbor
[root@cjr install-harbor]# cd harbor/
[root@cjr harbor]# ls
common.sh harbor.v2.3.0.tar.gz harbor.yml.tmpl install.sh LICENSE prepare
[root@cjr harbor]# cp harbor.yml.tmpl harbor.yml
[root@cjr harbor]# vi harbor.yml
You have new mail in /var/spool/mail/root
[root@cjr harbor]# vi harbor.yml
[root@cjr harbor]# sh install.sh
然后再windows中的hosts文件中写一下harbor主机的ip和主机名就可以访问了