【赵渝强老师】Docker的私有镜像仓库:Harbor

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Harbor是由VMware开发的企业级Docker镜像仓库管理工具,支持权限管理、LDAP集成、日志审计、镜像复制及中文界面等功能。本文详细介绍了Harbor的安装、配置及在Docker中的实战应用流程,涵盖环境准备、部署步骤、基础操作和镜像上传等内容,适用于容器化应用的镜像管理场景。

b386.png

Harbor是由VMware公司开发并开源的企业级的Docker镜像仓库的管理项目,它包括镜像的权限管理(RBAC)、目录访问(LDAP)、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。


视频讲解如下


为了更好地演示Harbor的安装和部署的过程,这里单独准备一台虚拟机作为运行Harbor的主机。下图展示了Harbor主机的网络配置和主机名信息。

image.png


一、 安装Docker和Docker Compose


(1)在Harbor的主机上关闭Linux防火墙和SELinux。

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

(2)配置Harbor主机的主机名和IP地址的映射,编辑文件“/etc/hosts”加入以下的内容。

192.168.79.10 my.harbor.com

(3)使用yum安装Docker

yum -y install docker

(4)启动Docker的服务

systemctl start docker
systemctl enable docker

(5)安装Docker Compose。下面的指令将从GitHub上下载Docker Compose服务编排工具,并保存到本地的“/usr/local/bin/docker-compose”文件中。

curl -L https://github.com/docker/compose/releases/download/1.23.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 提示:Docker Compose是Docker的服务编排工具,
# 关于Docker Compose的使用会在后续课程中介绍。
# 登录GitHub网站可以查看Docker Compose的最新的版本信息。

(6)给Docker Compose加上可执行的权限:

chmod +x /usr/local/bin/docker-compose

(7)确定Docker Compose的版本信息,如下图所示。

image.png


二、 安装配置Harbor


(1)从GitHub上下载Harbor的安装,这里使用Harbor 1.6.2的版本。

wget https://storage.googleapis.com/harbor-releases/release-1.6.0/harbor-offline-installer-v1.6.2.tgz

(2)将Harbor解压缩到/root/training/目录下。

mkdir /root/training/
tar -zxvf harbor-offline-installer-v1.6.2.tgz -C /root/training/

(3)进入“/root/training/harbor”目录下。

cd /root/training/harbor

(4)编辑Harbor的核心配置文件harbor.cfg。下面展示了需要修改的参数值:将Harbor监听的地址设置为了本机的主机名,并设置了Harbor管理员的密码。

# 监听地址
hostname = my.harbor.com
# 管理员的登录密码
harbor_admin_password = Welcome_1

(5)执行install命令安装Harbor。下图展示了安装完成后的界面。

./install.sh

image.png

(6)通过浏览器访问Harbor主页“http://192.168.79.10/”,如下图所示。

image.png

(7)使用admin账号进行登录,密码为第(4)步中设置的Welcome_1。下图展示了Harbor主页面。

image.png


三、 【实战】在Docker中使用Harbor


在配置好Harbor的私有镜像仓库后,需要在Docker的客户机上进行设置才能使用Harbor。这里以master主机为例进行设置。


(1)将Harbor主机的主机名和IP地址写入Docker客户机的“/etc/hosts”文件。

192.168.79.10 my.harbor.com

(2)编辑文件“/usr/lib/systemd/system/docker.service”文件,输入以下内容。其中,my.harbor.com是Harbor运行主机的hostname。

ExecStart=/usr/bin/dockerd --insecure-registry my.harbor.com

(3)执行下面的语句创建“/etc/docker/daemon.json”文件,在该文件中指定私有镜像仓库的地址。

cat > /etc/docker/daemon.json << EOF
{ "insecure-registries":["my.harbor.com"] }
EOF

(4)重启Docker服务。

systemctl daemon-reload
systemctl restart docker

(5)使用“docker login”命令登录私有仓库,如下图所示。

image.png


(6)创建一个简单的Dockerfile文件进行测试。

FROM centos
ENV TZ "Asia/Shanghai"

(7)使用“docker build”命令编译Dockerfile文件生成镜像,如下图所示。

image.png


(8)使用“docker images”命令查看生成的镜像。

(9)执行下面的命令将镜像上传到私有的harbor镜像仓库。镜像上传完成后的效果如下图所示。

docker push my.harbor.com/library/mycentos

image.png

(10)在Harbor的Web主页上确定上传的镜像信息。可以看到成功将生成的mycentos镜像保存到了私有的镜像仓库中,如下图所示。

image.png

相关实践学习
通过ACR快速部署网站应用
本次实验任务是在云上基于ECS部署Docker环境,制作网站镜像并上传至ACR镜像仓库,通过容器镜像运行网站应用,网站运行在Docker容器中、网站业务数据存储在Mariadb数据库中、网站文件数据存储在服务器ECS云盘中,通过公网地址进行访问。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
Kubernetes 算法 调度
【赵渝强老师】Kubernetes中Pod的调度策略
Kubernetes中Pod的调度是指将Pod分配到最合适的Node节点上运行。默认情况下,调度器根据资源需求和均衡策略自动选择节点。在特殊场景下,用户可通过nodeName和nodeSelector字段指定调度约束。本文详细介绍了Pod的创建过程及调度机制,并通过示例演示了如何使用nodeName和nodeSelector实现自定义调度策略。
177 1
|
13天前
|
人工智能 API Nacos
MCP Registry 官方发布:Nacos 原生支持,借助 HiMarket 构建企业级私有 MCP 市场
最近,MCP 社区发布了 MCP Registry(2025‑09‑08,预览版),为公开 MCP Server 提供“统一目录服务和开放 API”。Nacos 已原生支持 MCP Registry API,可直接作为“MCP Registry”对外提供标准 REST/OpenAPI 服务端,天然融入企业现有注册中心与配置治理体系,并与 Higress/HiMarket 对接打通,让企业能够高效的构建自己的私有 MCP 市场。
133 22
|
2月前
|
消息中间件 Java 测试技术
RocketMQ-5.3.1异常、原因汇总表
本简介汇总了常见的RocketMQ异常信息及其解决方案,涵盖主题配置、网络通信、SSL设置、权限控制、消息发送与消费等多个方面,帮助开发者快速定位和理解异常原因。
224 32
|
2月前
|
运维 监控 测试技术
2025年微服务架构关键知识点(一):核心原则与演进趋势
微服务架构凭借其高可用性、灵活扩展等优势,已成为2025年主流软件开发范式。本文深入解析微服务的核心原则、演进趋势及实践要点,助力开发者夯实基础,应对挑战,构建高效、稳定的系统架构。
|
3月前
|
人工智能 缓存 Kubernetes
ACK GIE配置建议
Gateway with Inference Extension是基于Kubernetes社区Gateway API及其扩展规范实现的增强型组件,支持四层/七层路由服务,并面向生成式AI推理场景提供负载均衡优化、服务管理简化等能力,适用于AI推理服务的高可用部署与性能优化。在不同的场景使用ACK Gateway with Inference Extension时,可能需要根据业务需求和高可用需要对网关和推理扩展进行不同的配置调整。本文主要介绍在实际业务场景中针对ACK GIE的配置建议,以获得更好的使用效果。
194 23
kde
|
11天前
|
运维 Ubuntu Linux
2025 最新 docker 可用镜像源仓库地址(9月记录)
本文分享运维组调研的稳定快速的Docker镜像源——轩辕镜像,支持多仓库且性价比高。提供Linux、macOS、Windows系统的一键及手动配置方法,适用于企业级长期使用场景。
kde
432 5
|
2月前
|
算法 Java 测试技术
适合新手小白的史上最强 Java 学习路线图从基础到进阶全程指南
本Java学习路线图涵盖从基础语法、面向对象、集合框架到进阶编程、JVM原理、Spring Boot框架,再到数据库操作与实战项目开发,内容系统全面,适合零基础新手入门与进阶提升,助力掌握Java全栈开发技能。
211 6
|
2月前
|
缓存 小程序 iOS开发
基于uni-app+vue3手机桌面oadmin管理系统
基于uniapp+vue3+pinia2+uv-ui仿ios手机界面oa后台系统解决方案。支持运行到h5+小程序+app端。
142 5
|
13天前
|
人工智能 弹性计算 监控
5 分钟 SAE 极速部署 Dify,赢取户外折叠椅和社区积分
阿里云 Serverless 应用引擎(SAE)提供了一键部署 Dify 的解决方案,适用于 AI 应用开发和测试,支持秒级弹性伸缩,并内置日志、监控与负载均衡功能,帮助企业高效搭建高可用的 AI 应用系统。
|
3月前
|
Kubernetes NoSQL Redis
使用ASM全局限流实现源IP分别限流
本文介绍了如何在ASM中实现基于源IP的全局限流,防止恶意请求。内容包括前提条件、准备工作、部署步骤及验证方法,帮助用户通过配置限流策略保障业务入口的稳定性与安全性。