网站首页 > 博客文章 正文
随着容器化技术的广泛应用,企业对镜像安全、存储、管理的需求不断提升。相比基础的 Registry,Harbor 作为一个企业级 Docker 镜像仓库,支持角色控制、镜像复制、审计日志、身份认证等功能,成为首选方案。本文将带你从0到1,在 Linux 上快速搭建一个高可用、易扩展的 Harbor 私有镜像仓库。
一、环境准备
- 一台或多台 Linux 服务器(推荐使用 CentOS 7+/Ubuntu 20.04+)
- Docker 已安装
- Docker Compose 已安装
- 服务器开放 80、443 端口
- 域名解析到服务器(可选,便于配置 HTTPS)
注意: Harbor 依赖 Docker Compose 部署,请确保版本在 1.18.0 以上。
二、下载安装 Harbor
1. 下载 Harbor 安装包
wget https://github.com/goharbor/harbor/releases/download/v2.9.0/harbor-online-installer-v2.9.0.tgz
2. 解压安装包
tar -zxvf harbor-online-installer-v2.9.0.tgz
cd harbor
三、配置 Harbor
1. 复制默认配置文件
cp harbor.yml.tmpl harbor.yml
2. 修改
harbor.yml
打开 harbor.yml,根据实际情况进行配置:
hostname: harbor.example.com # 你的服务器IP或者绑定的域名
http:
port: 80
https:
port: 443
certificate: /path/to/cert.crt
private_key: /path/to/cert.key
harbor_admin_password: Harbor12345 # 设置管理员密码
如果暂时不配置 HTTPS,可保持 https 模块注释。
四、启动 Harbor
1. 安装并启动 Harbor
sudo ./install.sh
启动过程会自动通过 Docker Compose 拉取并部署所需的各个服务容器,如核心服务、日志、数据库、缓存等。
2. 查看 Harbor 服务状态
docker-compose ps
五、访问 Harbor
浏览器访问:
http://<你的IP地址或域名>
默认登录账户:
- 用户名:admin
- 密码:你在 harbor.yml 配置的密码
进入管理后台后可以:
- 创建项目
- 分配用户角色
- 配置镜像复制策略
- 配置 LDAP/AD 认证
- 审计日志管理
六、配置 Docker 客户端使用 Harbor
1. 登录 Harbor
docker login <你的IP地址或域名>
输入账号密码即可。
2. 推送镜像到 Harbor
# 打标签
docker tag myapp:latest <你的IP地址或域名>/myproject/myapp:latest
# 推送
docker push <你的IP地址或域名>/myproject/myapp:latest
3. 从 Harbor 拉取镜像
docker pull <你的IP地址或域名>/myproject/myapp:latest
七、常见问题与优化
1. Harbor 启动失败
- 查看 docker-compose logs 获取详细错误信息。
- 检查配置文件 harbor.yml 是否正确。
- 确认服务器端口没有被占用。
2. 开启 HTTPS
强烈建议生产环境启用 HTTPS,保护镜像传输安全。可以使用自签证书或 Let’s Encrypt 免费证书。
3. 数据备份与恢复
Harbor 的重要数据包括:
- PostgreSQL 数据库(用户、项目、权限)
- 镜像文件(存储在指定目录)
- 配置文件(harbor.yml)
可以通过备份这些数据实现 Harbor 恢复。
总结
通过本文,你已经可以快速在 Linux 上搭建一套功能完善、支持企业级特性的 Harbor 私有镜像仓库。未来可以进一步优化,比如:
- 配置高可用集群
- 结合外部存储(如 NFS、S3)
- 设置镜像扫描(Trivy 集成)
- 启用身份认证与审计功能
掌握 Harbor,让你的容器管理体系更上一个台阶!
猜你喜欢
- 2025-05-11 idea整合dockerfile插件,打包镜像(docker环境可不安装)
- 2025-05-11 超详细!基于k8s+docker+jenkins的一站式 DevOps 环境搭建教程-下
- 2025-05-11 Kubernetes(K8s)+ GitLab + Jenkins 实现CI/CD
- 2025-05-11 docker的镜像和仓库(docker镜像仓库地址)
- 2025-05-11 轻量容器如何改变开发世界?Docker 基本概念与架构详解
- 2025-05-11 微服务时代,运维必须了解的那些事(服务架构演变)
- 2025-05-11 目前还能用的Docker容器加速方案和可用镜像源
- 2025-05-11 替代虚拟机的容器Docker安装教程——(Windows版)
- 2025-05-11 k8s系列-06-containerd的基本操作
- 2025-05-11 K8s+Jenkins+Harbor+Gitlab+Pipeline+Rust 持续集成(三)
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)