Docker + Harbor 私有镜像仓库搭建与实战指南:从安装到镜像推送全流程
在容器化技术日益普及的今天,Docker 作为容器化的标准工具,已被广泛应用于开发、测试及生产环境中。然而,随着容器镜像数量的增加,如何高效、安全地管理这些镜像成为开发者及企业面临的重要问题。Harbor,作为一个开源的企业级 Docker 私有镜像仓库,提供了权限管理、镜像复制、漏洞扫描等高级功能,成为解决这一问题的理想选择。本文将手把手教你完成 Docker 与 Harbor 私有镜像仓库的搭建,并详细介绍从安装到镜像推送的全流程。
一、环境准备
1.1 服务器配置
- 操作系统:推荐使用 CentOS 7/8 或 Ubuntu 18.04/20.04,这些系统对 Docker 和 Harbor 的支持较为成熟。
- 硬件要求:至少 4GB 内存(推荐 8GB 以上),2 核 CPU,20GB 以上的磁盘空间(根据镜像数量调整)。
- 网络配置:确保服务器有稳定的公网 IP 或内网 IP,并开放必要的端口(如 80、443、22 等)。
1.2 Docker 安装
在服务器上安装 Docker 是搭建 Harbor 的前提。以 CentOS 7 为例:
# 卸载旧版本(如果有)sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine# 安装依赖sudo yum install -y yum-utils device-mapper-persistent-data lvm2# 添加 Docker 官方仓库sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装 Docker CEsudo yum install -y docker-ce docker-ce-cli containerd.io# 启动 Docker 并设置开机自启sudo systemctl start dockersudo systemctl enable docker
验证 Docker 安装:
sudo docker run hello-world
二、Harbor 安装与配置
2.1 下载 Harbor
访问 Harbor 官方 GitHub 下载最新版本的 Harbor 安装包。以 v2.4.0 版本为例:
wget https://github.com/goharbor/harbor/releases/download/v2.4.0/harbor-offline-installer-v2.4.0.tgztar xvf harbor-offline-installer-v2.4.0.tgzcd harbor
2.2 配置 Harbor
编辑 harbor.yml 文件,修改以下关键配置:
# 主机名,设置为服务器的 IP 或域名hostname: your.server.ip.or.domain# HTTP 监听端口http:port: 80# HTTPS 配置(推荐启用)# https:# port: 443# certificate: /path/to/your/certificate.pem# private_key: /path/to/your/private_key.pem# 管理员密码harbor_admin_password: Harbor12345# 数据库密码(可选)database:password: root123
2.3 安装 Harbor
执行安装脚本:
sudo ./install.sh
安装完成后,访问 http://your.server.ip.or.domain(或 HTTPS 地址),使用默认用户名 admin 和配置的密码登录。
三、HTTPS 配置(可选但推荐)
为了增强安全性,建议为 Harbor 配置 HTTPS。以下以 Let’s Encrypt 免费证书为例:
3.1 安装 Certbot
# Ubuntusudo apt-get install -y certbot python3-certbot-nginx# CentOSsudo yum install -y certbot python3-certbot-nginx
3.2 获取证书
sudo certbot certonly --nginx -d your.server.ip.or.domain --email your@email.com --agree-tos --no-eff-email
3.3 配置 Harbor 使用 HTTPS
修改 harbor.yml 中的 HTTPS 配置部分,指向获取的证书和私钥文件。
重新运行安装脚本:
sudo ./preparesudo docker-compose downsudo docker-compose up -d
四、镜像推送实战
4.1 登录 Harbor
在需要推送镜像的机器上,首先登录 Harbor:
docker login your.server.ip.or.domain
输入用户名 admin 和密码。
4.2 标记镜像
假设你有一个本地镜像 myapp:latest,需要将其推送到 Harbor 的 library 项目下:
docker tag myapp:latest your.server.ip.or.domain/library/myapp:latest
4.3 推送镜像
docker push your.server.ip.or.domain/library/myapp:latest
4.4 验证镜像
登录 Harbor 管理界面,查看 library 项目下是否已存在 myapp:latest 镜像。
五、高级功能探索
5.1 项目与用户管理
Harbor 支持创建多个项目,每个项目可以有独立的成员和权限设置。通过管理界面可以轻松添加/删除用户,分配角色(如项目管理员、开发者、访客等)。
5.2 镜像复制
Harbor 支持镜像在不同项目或不同 Harbor 实例之间的复制,这对于多地域部署或灾备非常有用。
5.3 漏洞扫描
集成 Clair 进行镜像漏洞扫描,及时发现并修复镜像中的安全漏洞。
六、总结与展望
通过本文的介绍,你已经掌握了 Docker 与 Harbor 私有镜像仓库的搭建流程,从环境准备、Docker 安装、Harbor 配置到镜像推送,每一步都详细阐述。Harbor 不仅提供了基本的镜像存储功能,还通过权限管理、镜像复制、漏洞扫描等高级功能,极大地提升了镜像管理的效率和安全性。未来,随着容器化技术的不断发展,Harbor 也将不断完善,为开发者提供更加便捷、安全的镜像管理解决方案。