【Harbor 】Harbor 私有镜像仓库部署
一、环境要求
- 操作系统:CentOS 7+/Ubuntu 18.04+(推荐 CentOS7/8)
- 硬件配置:内存≥4G,磁盘≥50G
- 依赖软件:
- Docker ≥ 20.10
- docker-compose ≥ 2.20
版本检查命令:
docker--versiondockercompose version二、离线包下载
使用清华镜像站下载离线安装包:
wgethttps://mirrors.tuna.tsinghua.edu.cn/github-release/goharbor/harbor/v2.14.4/harbor-offline-installer-v2.14.4.tgz三、解压与配置文件初始化
# 解压安装包tar-zxvfharbor-offline-installer-v2.14.4.tgz# 进入目录cdharbor# 复制配置模板cpharbor.yml.tmpl harbor.yml四、基础配置(HTTP 模式,通用最简配置)
编辑配置文件:
viharbor.yml修改以下配置项,全程使用通用地址,不暴露真实IP:
# 仓库访问地址(服务器IP/域名)hostname:仓库访问地址# HTTP 访问端口,可自定义http:port:自定义端口# 关闭HTTPS(无证书场景)# https:# port: 443# certificate: /your/cert/path# private_key: /your/key/path# 管理员登录密码,自行设置强密码harbor_admin_password:自定义密码# 镜像数据存储目录data_volume:/data/harbor# 日志配置log:level:infolocal:rotate_count:50rotate_size:200Mlocation:/var/log/harbor保存退出:Esc→ 输入:wq回车
五、初始化 & 安装启动
# 生成组件配置、校验配置文件./prepare# 执行安装并启动所有服务./install.sh出现----Harbor has been installed and started successfully.----代表安装成功。
六、防火墙放行端口
# CentOS firewalld 放行自定义端口firewall-cmd --add-port=自定义端口/tcp--permanentfirewall-cmd--reload# Ubuntu ufw 放行端口(二选一执行)# ufw allow 自定义端口/tcp七、网页端访问仓库
浏览器输入地址:
http://仓库访问地址:自定义端口- 登录账号:
admin - 登录密码:
harbor.yml中设置的自定义密码
前置操作:网页端提前创建项目(示例项目名:
项目名称)
八、Docker 客户端全局配置(所有使用机器必做)
Docker 默认拒绝纯HTTP仓库,需配置信任非安全仓库:
- 编辑Docker守护进程配置
vi/etc/docker/daemon.json- 写入配置(替换为你的仓库地址+端口)
{"insecure-registries":["仓库访问地址:自定义端口"]}- 重启Docker生效
systemctl restartdocker九、镜像推送完整流程
1. 镜像打标签
格式:docker tag 本地镜像名:标签 仓库地址:端口/项目名称/镜像名:标签
# 示例:本地 nginx:1.30.1 镜像打标签dockertag nginx:1.30.1 仓库访问地址:自定义端口/项目名称/nginx:1.30.12. 登录私有仓库
dockerlogin 仓库访问地址:自定义端口根据提示输入账号admin和仓库密码。
3. 推送镜像至仓库
dockerpush 仓库访问地址:自定义端口/项目名称/nginx:1.30.1十、镜像拉取完整流程
在任意已配置信任规则的客户端机器执行:
方式1:直接拉取(常用)
dockerpull 仓库访问地址:自定义端口/项目名称/nginx:1.30.1方式2:拉取后重命名(还原为本地镜像名)
# 拉取仓库镜像dockerpull 仓库访问地址:自定义端口/项目名称/nginx:1.30.1# 重命名为本地常规名称dockertag 仓库访问地址:自定义端口/项目名称/nginx:1.30.1 nginx:1.30.1# 删除仓库格式镜像(可选)dockerrmi 仓库访问地址:自定义端口/项目名称/nginx:1.30.1十一、Harbor 日常运维命令
需进入 harbor 安装目录执行:
cd/安装路径/harbor# 启动服务docker-composeup-d# 停止服务docker-composedown# 查看所有组件运行状态docker-composeps# 实时查看运行日志docker-composelogs-f十二、进阶:生产环境开启 HTTPS(可选)
- 准备域名及SSL证书(公钥、私钥),上传至服务器指定目录
- 编辑
harbor.yml,注释HTTP配置,开启HTTPS并填写证书路径
hostname:仓库域名# http:# port: 80https:port:443certificate:证书公钥绝对路径private_key:证书私钥绝对路径- 重新初始化并生效配置
./prepare ./install.sh开启正规HTTPS证书后,客户端无需配置
insecure-registries。
十三、常见报错说明
报错:http: server gave HTTP response to HTTPS client
原因:客户端默认使用HTTPS访问纯HTTP仓库
解决:严格执行第八步 Docker客户端信任配置,重启Docker后重试登录、推拉镜像。
