Harbor 搭建 Docker 私有镜像仓库
官方文档:https://goharbor.io/
软件依赖
- Docker 18.06 或更高版本
- Docker Compose 1.22.0 或更高版本
下载
下载安装包:https://github.com/goharbor/harbor/releases
shell
wget https://github.com/goharbor/harbor/releases/download/v2.15.0/harbor-offline-installer-v2.15.0.tgz使用 tar 提取安装程序包:
shell
# Offline installer: 离线安装程序(640MB 国内推荐):
tar -xzvf harbor-offline-installer-version.tgz
# Online installer: 在线安装程序(11.5kb):
tar -xzvf harbor-online-installer-version.tgz
cd harbor配置 Harbor
shell
# 复制配置模板并编辑:
cp harbor.yml.tmpl harbor.yml
vi harbor.yml配置参考:https://goharbor.io/docs/2.14.0/install-config/configure-yml-file/
核心配置项说明:
| 配置项 | 说明 | 示例 |
|---|---|---|
| hostname | Harbor 访问地址(IP或域名) | 192.168.188.139 |
| http.port | HTTP 访问端口 | 80 |
| https | HTTPS 配置(生产环境必须) | 注释或填写证书路径 |
| harbor_admin_password | 管理员密码 | 默认为:Harbor12345 |
| data_volume | 数据存储路径 | /data |
基础配置示例(仅 HTTP):
yaml
hostname: 192.168.188.139
http:
port: 80
harbor_admin_password: Harbor12345
data_volume: /data安装并启动 Harbor
shell
cd /home/aday/harbor
sudo ./install.sh安装脚本会自动:
- 检查 Docker 和 Docker Compose 环境
- 根据 harbor.yml 生成配置文件
- 拉取或加载所需的 Docker 镜像
- 启动所有 Harbor 服务容器
安装完成后会看到类似以下提示:
text
✔ ----Harbor has been installed and started successfully.----启动和管理 Harbor
shell
# 进入 Harbor 目录
cd /home/aday/harbor
# 启动 Harbor
sudo docker compose up -d
# 停止 Harbor
sudo docker compose down
# 重启 Harbor
sudo docker compose restart
# 查看容器状态
sudo docker compose ps访问 Web 控制台
打开浏览器,访问 http://<你的服务器IP>:<配置的端口>(默认端口 80):
默认账号:admin
默认密码:Harbor12345(或你在 harbor.yml 中配置的密码)
登录后即可看到 Harbor 主界面,可以进行项目创建、用户管理、镜像管理等操作
配置 Docker 信任非 HTTPS 仓库
如果 Harbor 未配置 HTTPS,需要在客户端 Docker 的配置文件中添加 insecure-registries:
shell
sudo vim /etc/docker/daemon.json
# 添加以下内容:
{
"insecure-registries": ["192.168.188.139:80"]
}重载配置并重启 Docker:
shell
sudo systemctl daemon-reload
sudo systemctl restart docker登录 Harbor 并推送镜像
shell
# 登录 Harbor(输入账号和密码)
sudo docker login 192.168.188.139:80
# 标记镜像(要先在 Web 控制台中创建好项目,这里是:myproject,否则推送会 401)
# 默认已有的项目名称为:library
sudo docker tag nginx:latest 192.168.188.139:80/myproject/nginx:v1
# 推送镜像
sudo docker push 192.168.188.139:80/myproject/nginx:v1
# 拉取镜像
sudo docker pull 192.168.188.139:80/myproject/nginx:v1