ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Harbor私有镜像仓库部署及使用教程

Harbor私有镜像仓库部署及使用教程 文章目录一、引言二、安装部署2.1 下载离线包2.2 执行安装三、Web管理3.1 创建项目3.2 管理用户四、镜像推送与拉取4.1 配置本地Docker客户端4.2 登录Harbor4.3 推送镜像到Harbor4.4 从Harbor拉取镜像五、镜像复制与同步5.1 添加目标仓库5.2 创建复制规则六、总结参考文献一、引言在微服务架构与分布式部署成为主流的今天Docker镜像的高效管理与安全分发已成为企业DevOps流程中的核心环节。Harbor是一个开源的企业级容器镜像仓库服务用于安全地存储、分发和管理Docker容器镜像、Helm Chart等符合OCI标准的制品。它最初由VMware于2014年开发2016年开源2018年成为CNCF云原生计算基金会沙箱项目并于2020年6月正式成为CNCF毕业项目。它在Docker Registry的基础上增加了RBAC权限控制、Trivy镜像漏洞扫描、Cosign/Notary镜像签名、跨仓库镜像复制、审计日志等企业级功能。本教程主要面向企业内网环境下的Harbor私有镜像仓库部署和使用需求涵盖从离线安装到基础应用的完整实践路径。二、安装部署2.1 下载离线包内网环境下需要下载离线安装包完成Harbor安装。对于amd64x86架构直接从Harbor官网下载最新版离线安装包Assets对于ARM64架构使用如下命令下载V2.10.2版本的AARCH64离线安装包# 下载离线镜像包dockerpull alanpeng/harbor_images_aarch64:v2.10.2# 创建一个新的容器实例TEMP_CONTAINER_ID$(dockercreate alanpeng/harbor_images_aarch64:v2.10.2 /bin/true)# 从容器中拷贝文件dockercp$TEMP_CONTAINER_ID:/harbor-offline-installer-aarch64.tgz ./harbor-offline-installer-aarch64.tgz# 删除容器实例dockerrm$TEMP_CONTAINER_ID2.2 执行安装解压离线包并创建配置文件。tarzxf harbor-offline-installer-aarch64.tgzcdharborcpharbor.yml.tmpl harbor.yml修改配置文件harbor.ymlvimharbor.yml常用配置项如下# The IP address or hostname to access admin UI and registry service.# DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.hostname:hostname# Harbor部署服务器IP# http related confighttp:# port for http, default is 80. If https enabled, this port will redirect to https portport:port# https related config# 内网环境下通常使用HTTP协议即可因此可以注释或删除HTTPS相关内容# https:# https port for harbor, default is 443# port: 443# The path of cert and key files for nginx# certificate: /your/certificate/path# private_key: /your/private/key/path# enable strong ssl ciphers (default: false)# strong_ssl_ciphers: false# The initial password of Harbor admin# It only works in first time to install harbor# Remember Change the admin password from UI after launching Harbor.harbor_admin_password:admin_password# 默认为Harbor12345配置完成后执行安装脚本sudo./install.sh安装过程会自动加载离线镜像并启动所有服务。详细安装流程及完整配置说明可参考官方文档。三、Web管理3.1 创建项目打开浏览器登录http://hostname:port进入Harbor Web UI用户名为admin初始密码为配置文件中设置的admin_password默认为Harbor12345。点击新建项目填写项目名称选择访问级别。3.2 管理用户Harbor默认自带一个超级管理员admin如果有多用户需求则需要先创建用户。创建用户以后就可以将用户添加到具体项目中实现权限控制默认的超级管理员是所有项目的项目管理员。点击 “用户管理”创建新用户。选择一个项目在成员界面将用户添加进该项目并设置角色权限。角色权限说明如下角色权限项目管理员项目管理、成员管理、策略配置维护人员推送/拉取镜像、查看日志开发人员推送/拉取镜像访客仅拉取镜像受限访客仅拉取需额外授权四、镜像推送与拉取4.1 配置本地Docker客户端若Harbor使用HTTPS协议可跳过此步若使用HTTP协议由于Docker默认要求仓库使用HTTPS需要配置Docker信任该Harbor仓库否则Docker客户端会拒绝连接。对于Linux系统创建或修改/etc/docker/daemon.json文件对于Windows或Mac系统创建或修改~/.docker/daemon.json文件。修改内容如下{insecure-registries:[hostname:port]}修改配置文件后需重启Docker客户端才能生效。Linux系统执行如下命令现有运行中容器不会受影响systemctl reloaddockerWindows或Mac系统直接重启Docker Desktop。执行如下命令检查配置是否生效dockerinfo|grep-A5Insecure Registries若输出内容中包含hostname:port则说明配置已生效。4.2 登录Harbordockerloginhostname:port-uusername-ppassword输出Login Succeeded表示成功。上述命令会将密码保存在 ~/.docker/config.json 中生产环境建议使用docker login --password-stdin或配置凭证助手。4.3 推送镜像到Harbor# 给本地镜像打标签dockertagimage:image_taghostname:port/harbor_project/image:image_tag# 推送镜像dockerpushhostname:port/harbor_project/image:image_tag登录Harbor Web UI进入项目即可查看已推送的镜像。4.4 从Harbor拉取镜像dockerpullhostname:port/harbor_project/image:image_tag五、镜像复制与同步Harbor支持跨仓库镜像复制与同步首先配置好远程仓库地址和对应的匹配规则然后就可以把本地仓库镜像同步到远程仓库实现镜像备份和高可用功能。5.1 添加目标仓库点击 “仓库管理” → “新建目标”选择提供商Harbor/Docker Hub/AWS ECR/阿里云ACR等填写目标地址和访问凭证。5.2 创建复制规则点击复制管理 → “新建规则”。各配置项说明如下配置项说明名称规则名称复制模式Push-based推送到远端/Pull-based从远端拉取源资源过滤器按项目名、仓库名、标签过滤目标仓库目标Harbor或其他仓库Docker Hub、ACR、GCR等触发模式手动/定时/事件触发推送时自动复制六、总结Harbor是一个企业级镜像仓库管理服务在安全性、可管理性和扩展性上为微服务容器化交付提供了坚实底座。本教程面向内网离线部署业务场景覆盖了从安装包获取、HTTP配置、Web项目与用户管理到镜像推送拉取及跨仓库同步的日常运维操作链路。Harbor的功能远不止于此还包括漏洞扫描、代理缓存等高级应用值得深入学习和探索。参考文献[1] https://goharbor.io/docs/2.15.0/install-config[2] https://github.com/mgl-pub/build-harbor-aarch64[3] https://cloud.tencent.com/developer/article/2474843[4] https://blog.csdn.net/sinat_17584329/article/details/159171648[5] https://ask.csdn.net/questions/9760180
返回列表