搭建Docker Harbor仓库
搭建 Docker Harbor 仓库是一个常见的任务,Harbor 是一个企业级的 Docker Registry 管理工具,提供了镜像管理、用户权限控制、镜像扫描等功能。下面是搭建 Harbor 仓库的详细步骤。
1. 环境准备
在开始之前,确保你的服务器满足以下要求:
- 操作系统:Linux(推荐 Ubuntu 或 CentOS)
- Docker 已安装(版本 >= 17.06)
- Docker Compose 已安装(版本 >= 1.18.0)
- 至少 2 核 CPU 和 4GB 内存
- 有足够的磁盘空间(建议 50GB 以上)
安装 Docker 和 Docker Compose
如果你还没有安装 Docker 和 Docker Compose,可以按照以下步骤安装:
安装 Docker
# 更新包管理器
sudo apt-get update
# 安装 Docker
sudo apt-get install -y docker.io
# 启动 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
安装 Docker Compose
# 下载 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# 赋予执行权限
sudo chmod +x /usr/local/bin/docker-compose
# 验证安装
docker-compose --version
2. 下载 Harbor 安装包
Harbor 提供了离线安装包和在线安装包,推荐使用离线安装包以避免网络问题。
下载 Harbor 安装包
# 下载最新版本的 Harbor 离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.7.0/harbor-offline-installer-v2.7.0.tgz
# 解压安装包
tar -zxvf harbor-offline-installer-v2.7.0.tgz
解压后会得到一个 harbor
目录。
3. 配置 Harbor
进入 harbor
目录,编辑配置文件 harbor.yml
。
修改 harbor.yml
配置
cd harbor
cp harbor.yml.tmpl harbor.yml
nano harbor.yml
主要修改以下几项:
- hostname: 设置为你的服务器 IP 或域名(例如
192.168.1.100
或harbor.example.com
)。 - https(可选): 如果你需要启用 HTTPS,配置证书路径。
- ** harbor_admin_password**: 设置管理员密码。
- data_volume: 设置数据存储路径(默认是
/data
)。
示例配置
hostname: 192.168.1.100
http:
port: 80
# https:
# port: 443
# certificate: /path/to/your/cert.pem
# private_key: /path/to/your/key.pem
harbor_admin_password: "Harbor12345"
data_volume: /data
4. 安装 Harbor
在 harbor
目录下,运行安装脚本。
sudo ./install.sh
安装过程会启动多个 Docker 容器,包括 Harbor 的核心服务。
5. 访问 Harbor
安装完成后,你可以通过浏览器访问 Harbor 的管理界面。
访问地址
- HTTP:
http://<hostname>
(例如http://192.168.1.100
) - HTTPS(如果配置了 HTTPS):
https://<hostname>
登录
- 用户名:
admin
- 密码: 你在
harbor.yml
中设置的密码(例如Harbor12345
)
6. 使用 Harbor
推送镜像到 Harbor
-
登录到 Harbor:
docker login <hostname>
输入用户名和密码。
-
标记本地镜像:
docker tag <image_name> <hostname>/<project_name>/<image_name>:<tag>
例如:
docker tag nginx 192.168.1.100/library/nginx:1.0
-
推送镜像:
docker push 192.168.1.100/library/nginx:1.0
拉取镜像
docker pull 192.168.1.100/library/nginx:1.0
7. 常见问题
1. 无法访问 Harbor 界面
- 检查防火墙是否开放了 80 或 443 端口。
- 确保
hostname
配置正确。
2. 推送镜像失败
- 检查 Docker 是否已登录到 Harbor。
- 确保项目(如
library
)已创建。
3. HTTPS 配置问题
- 确保证书路径正确,并且证书文件权限可读。
8. 升级 Harbor
如果你需要升级 Harbor,可以下载新版本的安装包,解压后覆盖旧的 harbor.yml
,然后运行升级脚本:
sudo ./install.sh --with-trivy --with-chartmuseum