当前位置: 首页 > article >正文

从入门到实战:Harbor 私有镜像仓库完全使用指南

从入门到实战Harbor 私有镜像仓库完全使用指南前言在容器化盛行的今天Docker 镜像的管理与分发变得至关重要。Harbor 作为一个开源的云原生容器镜像仓库不仅提供了安全的镜像存储和访问控制还集成了漏洞扫描、内容签名和复制等功能成为企业内网搭建私有仓库的首选。本文将从零开始详细介绍 Harbor 的核心使用方法包括如何上传/拉取镜像、配置 HTTP 访问、设置代理缓存以加速 Docker Hub 镜像获取并解答常见问题。无论你是运维新手还是开发老手都能通过本文快速掌握 Harbor 的日常操作。环境说明Harbor 地址10.xx.xx.xxHTTP 协议默认端口 80Docker 版本20.10操作系统LinuxCentOS/Ubuntu 均可注意如果您的 Harbor 配置了 HTTPS操作步骤基本一致只需将地址中的http://改为https://且无需配置insecure-registries。一、准备工作让 Docker 信任 HTTP 仓库由于我们的 Harbor 仅支持 HTTP 协议而 Docker 默认要求仓库使用 HTTPS因此需要将 Harbor 地址添加到 Docker 的「非安全仓库」列表中。1.1 修改 Docker 配置文件编辑/etc/docker/daemon.json如不存在则新建{insecure-registries:[10.xx.xx.xx]}如果还想将 Harbor 作为镜像加速器拉取公共镜像时优先从 Harbor 拉取可以添加registry-mirrors字段{insecure-registries:[10.xx.xx.xx],registry-mirrors:[http://10.xx.xx.xx]}1.2 重启 Docker 服务sudosystemctl daemon-reloadsudosystemctl restartdocker1.3 验证配置dockerinfo|grep-A5Insecure Registries输出应包含10.xx.xx.xx。二、登录 Harbor使用docker login命令登录 Harbor用户名和密码与 Harbor Web 控制台一致默认管理员为admin密码为Harbor12345建议首次登录后修改。dockerlogin-uadmin-pHarbor1234510.41.87.240输入用户名和密码看到Login Succeeded即表示成功。提示如果遇到dial tcp 10.xx.xx.xx:xx: connect: connection refused错误说明 Docker 仍尝试使用 HTTPS 连接请检查insecure-registries配置是否正确并重启 Docker。三、推送镜像到 Harbor推送镜像需要三个步骤标记本地镜像 → 推送 → 验证。3.1 标记镜像假设本地有一个ubuntu:latest镜像需要为其打上 Harbor 的完整标签格式为Harbor地址/项目名/镜像名:标签。# 查看本地镜像dockerimages# 打标签项目名假设为 myprojectdockertag ubuntu:latest10.xx.xx.xx/myproject/ubuntu:latest3.2 推送镜像dockerpush10.xx.xx.xx/myproject/ubuntu:latest推送过程中会显示每一层的上传进度完成后会输出镜像摘要。3.3 验证命令行再次运行docker images可以看到本地多了一个 Harbor 地址前缀的镜像。Web 控制台访问http://10.xx.xx.xx进入myproject项目即可看到ubuntu仓库及latest标签。常见错误denied: requested access to the resource is denied项目不存在或用户无写入权限。请在 Harbor 中创建项目并将当前用户加入项目成员角色至少为「开发者」。http: server gave HTTP response to HTTPS clientinsecure-registries未正确配置检查并重启 Docker。四、从 Harbor 拉取镜像在内网其他机器上只要配置了相同的insecure-registries并登录 Harbor就可以直接拉取镜像。4.1 拉取命令dockerpull10.xx.xx.xx/myproject/ubuntu:latest4.2 利用镜像加速器实现「无感拉取」如果你在daemon.json中配置了registry-mirrors: [http://10.41.87.240]那么当执行docker pull ubuntu:latest时Docker 会优先从 Harbor 拉取相当于将 Harbor 作为 Docker Hub 的镜像缓存。但请注意这只对拉取有效推送仍必须写完整地址。五、进阶配置代理缓存Proxy Cache加速 Docker Hub当团队频繁拉取 Docker Hub 镜像时配置代理缓存可以大幅提升速度并节省公网带宽。Harbor 的代理缓存功能会自动将拉取的镜像存储在本地后续拉取直接从 Harbor 返回。5.1 创建 Docker Hub 端点管理员操作登录 Harbor Web 控制台进入系统管理 → 仓库管理。点击新建端点选择提供商Docker Hub。名称dockerhub-proxyURL自动填充https://registry-1.docker.io访问 ID/密码可选建议填写 Docker Hub 账号密码或访问令牌以提高拉取速率限额。点击测试连接通过后保存。5.2 创建代理缓存项目进入项目→新建项目。填写项目名称如docker-hub并开启代理缓存开关。选择上一步创建的端点dockerhub-proxy点击确定。5.3 通过 Harbor 拉取 Docker Hub 镜像现在你可以通过以下命令拉取任何 Docker Hub 镜像Harbor 会自动从 Docker Hub 拉取并缓存# 拉取官方镜像dockerpull10.xx.xx.xx/docker-hub/library/nginx:latest# 拉取第三方镜像如 bitnami/redisdockerpull10.xx.xx.xx/docker-hub/bitnami/redis:latest首次拉取可能稍慢后续拉取将瞬间完成。六、常见问题与解决方案Q1为什么docker push时必须写完整的 Harbor 地址这是 Docker 的设计机制决定的。镜像的全名本身就包含了仓库地址Docker 根据地址判断推送到哪里。不写地址默认推送到 Docker Hub。Q2能否让docker push也默认推送到 Harbor不能直接默认但可以通过脚本或别名简化操作。例如定义一个 shell 变量exportHARBOR10.xx.xx.xx/myprojectdockertag ubuntu:latest${HARBOR}/ubuntu:latestdockerpush${HARBOR}/ubuntu:latestQ3Harbor 的 Web 登录密码和docker login密码是同一个吗是的完全一致。默认管理员账号密码为admin/Harbor12345。Q4配置了insecure-registries后仍然报 HTTPS 错误请检查是否在registry-mirrors中也写了http://10.41.87.240这可能导致混淆。建议保持insecure-registries只写 IPregistry-mirrors只写公网加速器如https://docker.xuanyuan.me。Q5代理缓存项目能否推送自己的私有镜像不能。代理缓存项目只能拉取并缓存上游镜像不允许推送。私有镜像应存放在普通项目中。七、总结通过本文你应该已经掌握了 Harbor 的核心使用技能配置 Docker 客户端以支持 HTTP 仓库登录 Harbor 并推送/拉取镜像利用代理缓存功能加速 Docker Hub 镜像获取解决常见错误。Harbor 的功能远不止于此还包括镜像复制、漏洞扫描、机器人账户等高级特性值得深入探索。希望本文能帮助你顺利搭建起高效的私有镜像分发体系提升团队容器化应用的交付效率。参考资料Harbor 官方文档Docker Registry 配置版权声明本文为原创技术文章转载请注明出处。如有疑问或建议欢迎留言交流。

相关文章:

从入门到实战:Harbor 私有镜像仓库完全使用指南

从入门到实战:Harbor 私有镜像仓库完全使用指南 前言 在容器化盛行的今天,Docker 镜像的管理与分发变得至关重要。Harbor 作为一个开源的云原生容器镜像仓库,不仅提供了安全的镜像存储和访问控制,还集成了漏洞扫描、内容签名和复…...

Nacos Docker 安装文档 (MacBook Pro M2)

文档信息 适用环境: MacBook Pro with Apple Silicon (M2芯片) Nacos版本: v2.4.0-slim (支持ARM64架构) 数据库: MySQL 5.7/8.0 一、环境准备 1.1 检查Docker环境 # 检查Docker是否安装 docker --version# 检查Docker运行状态 docker info# 确认支持ARM64架构 docker inf…...

实战指南:基于OpenCV与RTSP协议,轻松接入海康萤石网络摄像头视频流

1. 环境准备与设备连接 第一次接触海康萤石摄像头时,我也被那一堆网线和参数搞得头晕。后来发现只要理清思路,整个过程就像拼乐高一样简单。以CS-C3S-52WEFR这款经典机型为例,我们需要准备以下硬件: 带LAN口的路由器(我…...

Asian Beauty Z-Image Turbo 模型压缩与加速:在边缘设备部署的探索

Asian Beauty Z-Image Turbo 模型压缩与加速:在边缘设备部署的探索 最近几年,AI图像生成模型的发展速度,快得有点让人跟不上。从最初的模糊涂鸦,到现在能生成以假乱真的高清人像、风景,效果确实惊艳。但不知道你有没有…...

ZXPInstaller:跨平台Adobe插件安装利器,让创意工作流无缝衔接

ZXPInstaller:跨平台Adobe插件安装利器,让创意工作流无缝衔接 【免费下载链接】ZXPInstaller Open Source ZXP Installer for Adobe Extensions 项目地址: https://gitcode.com/gh_mirrors/zx/ZXPInstaller 在数字创意领域,Adobe系列软…...

Flask Session 安全攻防实战:从密钥泄露到防御加固

1. Flask Session 安全威胁全景扫描 Flask 的客户端 Session 机制就像把家门钥匙藏在门口的垫子下面——虽然方便了自己,但也给小偷留了机会。我见过太多开发者直接照搬官方文档的示例代码,结果把整个系统的安全防线变成了纸糊的城墙。先带大家看看攻击者…...

解决6818开发板 syntax error: unexpected word的问题

首先确定ubantu成功安装了交叉编译工具链。假设需要编译的文件是1.c,需要生成test1文件。在ubantu进行编译:arm-linux-gcc 1.c -o test1然后在开发板上运行:./test1如果开发板出现了syntax error: unexpected word,有可能是使用了…...

色彩管理与显示优化:让你的NVIDIA显卡呈现真实色彩

色彩管理与显示优化:让你的NVIDIA显卡呈现真实色彩 【免费下载链接】novideo_srgb Calibrate monitors to sRGB or other color spaces on NVIDIA GPUs, based on EDID data or ICC profiles 项目地址: https://gitcode.com/gh_mirrors/no/novideo_srgb 当你…...

internlm2-chat-1.8b效果实测:中文成语接龙+文化背景解释趣味能力展示

internlm2-chat-1.8b效果实测:中文成语接龙文化背景解释趣味能力展示 最近在玩一个挺有意思的AI模型——书生浦语团队开源的internlm2-chat-1.8b。这个模型虽然参数不大,只有18亿,但听说在中文理解和对话上表现不错。我把它部署在Ollama上&a…...

从零开始:在Qt项目中优雅地使用系统图标(QIcon::fromTheme详解)

从零开始:在Qt项目中优雅地使用系统图标(QIcon::fromTheme详解) 在桌面应用开发中,图标是用户界面不可或缺的元素。它们不仅美化界面,还能通过视觉符号快速传达功能意图。对于Qt开发者而言,QIcon::fromThe…...

【实战】Godot VSCode联调:从零搭建高效脚本工作流

1. 为什么需要Godot与VSCode联调? 作为一个从Unity转战Godot的老鸟,我最初也被Godot内置编辑器折磨得不轻。虽然内置编辑器对新手友好,但当你需要处理复杂项目时,代码补全慢、调试功能弱、界面拥挤等问题就会暴露无遗。特别是开发…...

PDF文档处理新选择:MinerU 2.5-1.2B镜像快速部署与使用指南

PDF文档处理新选择:MinerU 2.5-1.2B镜像快速部署与使用指南 1. 引言:为什么选择MinerU处理PDF文档 在日常工作和研究中,我们经常需要从PDF文档中提取内容。传统的PDF转文本工具往往无法正确处理复杂排版,比如学术论文中的多栏布…...

tomcat安装后忘记放在哪里以及怎么打开tomcat

sudo find / -name apache-tomcat-*.tar.gzsu -find ./ -name ^tomcatcd /export/server/tomcatcd bin./startup.sh最后显示Tomcat started.说明开启成功netstat -anp | grep 8080 查看8080端口占用情况最后浏览器上 http://localhost:8080就能连接上...

网盘直链解析技术白皮书:突破下载限制的高效解决方案

网盘直链解析技术白皮书:突破下载限制的高效解决方案 【免费下载链接】Online-disk-direct-link-download-assistant 可以获取网盘文件真实下载地址。基于【网盘直链下载助手】修改(改自6.1.4版本) ,自用,去推广&#…...

零基础玩转Qwen2.5-7B-Instruct:手把手教你用chainlit搭建智能对话前端

零基础玩转Qwen2.5-7B-Instruct:手把手教你用chainlit搭建智能对话前端 1. 环境准备与快速部署 1.1 系统要求 操作系统:Linux (推荐Ubuntu 20.04)Python版本:3.8GPU:NVIDIA显卡(显存≥16GB)内存:≥32GB 1.2 安装依…...

CLI-Anything 原理与实践:MCP 之外的另一种 Agent 工具接入方式

CLI-Anything 项目解析:它会替代 MCP 吗? 当大家都在讨论 AI Agent、MCP、Tool Use 的时候,一个更底层的问题其实越来越明显:AI 很会推理,却并不擅长稳定地使用真实世界的软件。 它会写代码,会拆任务,会调用 API,但一旦面对复杂桌面软件、老项目、没有完整接口的应用,…...

YOLOv11优化全景图:从模块革新到部署实战,200+顶会方案融合与工程化指南

1. YOLOv11核心模块革新全景图 YOLOv11作为目标检测领域的最新力作,其架构创新主要体现在六大核心模块的协同优化上。我在实际项目中发现,理解这些模块的相互作用比单纯堆砌改进方法更重要。Backbone部分采用了混合卷积与注意力机制的设计,实…...

【统计检验】F检验与F分布

统计检验核心:F检验与F分布|原理推导Python可视化机器学习实战 F检验是统计学中用于比较方差、做方差分析(ANOVA)、检验回归方程显著性的核心方法,也是本科数理统计、研究生数据分析与机器学习特征选择的必学内容。一、…...

松下A6BE伺服电机增益调整与振动抑制:如何通过自动调整功能提升系统稳定性

松下A6BE伺服电机增益调整与振动抑制实战指南 在工业自动化领域,伺服系统的稳定性直接影响着设备运行效率与产品质量。作为松下MINAS A6系列的核心产品,A6BE伺服电机凭借其实时自动调整和适应滤波器两大创新功能,为工程师提供了解决系统振动问…...

利用SmolVLA自动化生成技术文档:UML图转文字说明

利用SmolVLA自动化生成技术文档:UML图转文字说明 每次项目评审,最头疼的是什么?对我来说,除了改不完的Bug,就是写不完的技术文档。特别是设计文档,对着画好的UML图,要把每个类、每个方法、每个…...

Janus-Pro-7B在工业物联网(IIoT)的应用:设备仪表盘图像智能诊断

Janus-Pro-7B在工业物联网(IIoT)的应用:设备仪表盘图像智能诊断 想象一下,在一个大型工厂的车间里,成百上千台设备正在轰鸣运转。每台设备上都有仪表盘、指示灯和显示屏,显示着压力、温度、转速等关键数据…...

从零开始掌握HTTP协议:全面详解1.0、1.1和2.0

HTTP协议概述1. 回顾 Http1.x协议 Http1.0协议 请求响应的模式 短连接协议(无状态协议) 传输数据文本结构 单工 无法实现服务端推送 变相实现推动(客户端轮训的方式) Http1.1协议 请求响应的模式 有限的长连接 …...

SeqGPT-560M多场景落地指南:新闻分类、金融抽取、政务摘要一体化方案

SeqGPT-560M多场景落地指南:新闻分类、金融抽取、政务摘要一体化方案 1. 模型介绍:零样本理解新选择 SeqGPT-560M是阿里达摩院推出的零样本文本理解模型,无需训练即可完成文本分类和信息抽取任务。这个模型最大的特点就是"开箱即用&qu…...

基于异步电机的光伏储能三相并网微电网仿真模型附Simulink仿真

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践

Apex Legends智能压枪系统深度解析:3大核心技术实现与多分辨率适配工程实践 【免费下载链接】Apex-NoRecoil-2021 Scripts to reduce recoil for Apex Legends. (auto weapon detection, support multiple resolutions) 项目地址: https://gitcode.com/gh_mirrors…...

如何用代码画图?揭秘Mermaid Live Editor的终极可视化创作体验

如何用代码画图?揭秘Mermaid Live Editor的终极可视化创作体验 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-liv…...

5步搞定!用FUTURE POLICE为爬取的播客/访谈录音添加毫秒级精准字幕

5步搞定!用FUTURE POLICE为爬取的播客/访谈录音添加毫秒级精准字幕 1. 引言:为什么需要精准字幕? 在内容创作和媒体制作领域,字幕同步问题一直是个痛点。传统字幕制作通常需要: 先通过语音识别生成文字稿人工反复听…...

Reloaded-II:让游戏模组管理不再复杂的跨平台解决方案

Reloaded-II:让游戏模组管理不再复杂的跨平台解决方案 【免费下载链接】Reloaded-II Next Generation Universal .NET Core Powered Mod Loader compatible with anything X86, X64. 项目地址: https://gitcode.com/gh_mirrors/re/Reloaded-II 在游戏模组开发…...

为什么说AI创作的成本革命,比技术革命更重要?

过去两年,我见证了太多AI技术的“高光时刻”。 谷歌发布Imagen,Midjourney更新V6,OpenAI推出Sora……每一次,科技媒体都在欢呼“革命来了”“行业变天了”。 但我发现一个有趣的现象:这些“革命性”的工具&#xff0…...

CLion豆包实战:提升C++开发效率的插件开发与集成指南

最近在做一个C项目,用CLion开发体验确实不错,但有个问题一直困扰我:每次切换不同的编译工具链、调试器或者运行测试,都得在菜单里点来点去,或者手动改CMake配置,感觉开发节奏总被打断。后来尝试用豆包插件把…...