【devops】八、集成Harbor(上)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 【devops】八、集成Harbor(上)

说明


在Jenkins服务器上部署Harbor仓库,如果电脑内存允许,可以新加一台服务器部署Harbor。


八、集成Harbor


e7a33d194ffb4d6f9472a65c1c0879c0.png


8.1 Harbor介绍

前面在部署项目时,我们主要采用Jenkins推送jar包到指定服务器,再通过脚本命令让目标服务器对当前jar进行部署,这种方式在项目较多时,每个目标服务器都需要将jar包制作成自定义镜像再通过docker进行启动,重复操作比较多,会降低项目部署时间。

我们可以通过Harbor作为私有的Docker镜像仓库。让Jenkins统一将项目打包并制作成Docker镜像发布到Harbor仓库中,只需要通知目标服务器,让目标服务器统一去Harbor仓库上拉取镜像并在本地部署即可。

Docker官方提供了Registry镜像仓库,但是Registry的功能相对简陋。Harbor是VMware公司提供的一款镜像仓库,提供了权限控制、分布式发布、强大的安全扫描与审查机制等功能。


8.2 Harbor安装——原生方式部署

这里采用原生的方式安装Harbor。

  1. 下载Harbor安装包:

https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz

  1. 将安装包拖拽到Linux系统中并解压:

tar -zxvf harbor-offline-installer-v2.3.4.tgz -C /usr/local/

注:-C 选项的作用是:指定需要解压到的目录。

  1. 修改Harbor配置文件:

① 首先复制一份harbor.yml配置

# 进入目录
cd /usr/local/harbor
# 复制一份yml文件,并编辑yml文件
cp harbor.yml.tmpl harbor.yml
vim harbor.yml


② 编辑harbor.yml配置文件

fb0da8c935a84ff583202be327eb0c7a.png

  1. 启动Harbor
cd /usr/local/harbor
./install.sh


如果想要停止harbor容器实例,命令如下

docker-compose down harbor
使用docker ps 查看容器实例,就发现harbor容器已经关闭 


查看日志:

04d7252b284c4f558c03833e528c1a01.png

5、登录Harbor

密码可以在/usr/local/harbor/harbor.yml文件中看

470e6ade1ee14cfab8ad7937ccd0346e.png

首页信息:

d568236c0248436f9e4efe38eeb58df9.png

8.3 Harbor使用方式

Harbor作为镜像仓库,主要的交互方式就是将镜像上传到Harbor上,以及从Harbor上下载指定镜像。

在传输镜像前,可以先使用Harbor提供的权限管理,将项目设置为私有项目,并对不同用户设置不同角色,从而更方便管理镜像。

这里我使用的是公开的仓库。


8.3.1 添加用户构建项目
  1. 构建项目(设置为私有的话,后面从harbor上拉取镜像需要登录)
    我这里直接使用公开仓库了(记得勾选公开)

09e02dc3f1b84613b0e9d6038d4ace55.png


私有仓库创建步骤:

e864b304d12f4bb0bbdb70438ad4772a.png

创建用户:

fbf383e3f0254c1e98bed39c006a0a3c.png

给项目追加用户:

4d710a2e4d094415978d46209f8bb60f.png

切换测试用户:

ab902663b70d47cda50a4422a4633a52.png

8.3.2 发布镜像到Harbor
  1. 修改镜像名称
    名称要求:harbor地址/项目名/镜像名:版本
# 改名命令
docker tag [镜像id] 镜像仓库地址/项目名/镜像名:版本


这里我把mytest:v1.0.0镜像改名为:192.168.2.211:80/repo/mytest:v1.0.0

  1. 修改daemon.json文件,支持从Docker仓库拉取镜像,并重启Docker
vim /etc/dokcer/daemon.json
# 把自己的harbor仓库IP地址内容加进去,注意要在上一行结束的地方加逗号
"insecure-registries": ["192.168.2.211:80"]
# 重启docker
systemctl restart docker


576f88a16d0543bfa0a6f75886c824b1.png

  1. 登录harbor仓库,推送镜像,到harbor仓库查看
docker login -u 用户名 -p 密码 Harbor地址
# 这里登录我的仓库,并推送镜像
docker login -u admin -p Harbor12345 192.168.2.211:80
docker push 192.168.2.211:80/repo/mytest:v1.0.0

e50bf20921884780b45932168d037234.png

9ed8dcecf8fd440e9d150b201534021a.png

8.3.3 指定目标服务器从Harbor拉取镜像

跟传统方式一样,不过需要在目标服务器上先配置/etc/docker/daemon.json文件,再重启docker

{
        "registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"],
        "insecure-registries": ["192.168.2.211:80"]
}
# 重启docker
systemctl restart docker
#如果镜像仓库是私有的,需要先登录,执行docker login命令。由于这里是公开的仓库,所以不用登录
docker login -u 用户名 -p 密码 harbor仓库地址

65a66af09a08407d8fc120b725c6059f.png

相关实践学习
Docker镜像管理快速入门
本教程将介绍如何使用Docker构建镜像,并通过阿里云镜像服务分发到ECS服务器,运行该镜像。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
13天前
|
监控 Devops 测试技术
DevOps实践:持续集成与持续部署(CI/CD)在现代软件开发中的作用
【6月更文挑战第24天】本文深入探讨了持续集成(Continuous Integration,简称CI)和持续部署(Continuous Deployment,简称CD)在现代软件开发生命周期中的核心作用。通过阐述CI/CD的概念、优势以及实施策略,文章旨在为读者提供一套完整的理论框架和实践指南,以促进软件开发流程的高效性和产品质量的提升。
|
20天前
|
运维 监控 Devops
DevOps实践:持续集成与持续部署(CI/CD)的精髓
【6月更文挑战第17天】本文将深入探讨DevOps文化中的核心实践——持续集成(CI)和持续部署(CD)。我们将从理论出发,逐步过渡到实际操作,介绍如何搭建一个高效的CI/CD流程。文章将涵盖工具选择、流程设计、自动化测试以及监控和反馈机制的建立。通过具体案例分析,揭示成功实施CI/CD的关键因素,并探讨如何在组织内推广这一实践以促进开发和运维之间的协作。
|
2月前
|
Devops 开发工具 数据安全/隐私保护
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
Docker Swarm总结+CI/CD Devops、gitlab、sonarqube以及harbor的安装集成配置(3/5)
177 0
|
9月前
|
jenkins Devops 持续交付
【devops】八、集成Harbor(下)
【devops】八、集成Harbor(下)
|
4天前
|
监控 Devops 测试技术
利用DevOps提升开发效率:技术实践与策略
【7月更文挑战第4天】DevOps通过自动化、CI/CD、协作与沟通等手段,显著提升了软件开发的效率和质量。随着云计算、容器化、自动化测试等技术的不断发展,DevOps的实践将更加深入和广泛。未来,更多的企业将采用DevOps文化,构建高效、灵活、可靠的软件开发和运维体系,以应对快速变化的市场需求。 总之,利用DevOps提升开发效率是软件开发领域的重要趋势。通过实施上述实践策略,企业可以加速产品迭代,提高市场竞争力,实现可持续发展。
|
25天前
|
运维 监控 Devops
DevOps文化下的自动化运维实践
本文将探讨在DevOps文化背景下,自动化运维的重要性及其实现方式。通过分析自动化运维的优势和挑战,文章提供了具体的实施策略和案例,旨在帮助读者理解如何在DevOps实践中融入自动化运维,以提高软件开发和部署的效率与质量。
|
8天前
|
运维 监控 Devops
DevOps实践:构建高效运维流程
【6月更文挑战第29天】在现代软件开发周期中,DevOps已成为推动开发和运维团队紧密合作的重要哲学。本文将探讨如何通过DevOps实践来构建一个更高效的运维流程,从而提升软件交付速度、提高产品质量,并确保系统的稳定性和安全性。我们将从持续集成、自动化测试、配置管理、容器化部署、监控与告警等关键方面入手,深入分析DevOps实施过程中的关键环节及其对运维工作的影响。
25 3
|
17天前
|
运维 Devops 测试技术
DevOps:文化、工具与实践的深度融合
【6月更文挑战第21天】DevOps融合文化、工具与实践,促进开发与运维协作,加速软件交付。核心包括共享文化、自动化工具(如Git、Jenkins)与流程优化(敏捷、自动化、微服务)。DevOps助力团队协作,提高效率,降低运维成本,驱动企业持续创新与成长。
|
17天前
|
运维 监控 Devops
DevOps实践:从理论到现实的转变
【6月更文挑战第20天】在数字化浪潮的推动下,DevOps作为一种文化和实践,正逐渐成为企业追求敏捷、高效运维不可或缺的一环。本文将深入探讨DevOps的核心理念、实践策略以及面临的挑战,并结合真实案例分析其在实际工作中的应用效果。通过阐述DevOps实施过程中的关键因素,文章旨在为读者提供一套完整的DevOps落地指南,以助力企业实现持续集成与持续交付的目标。
23 2
|
2月前
|
运维 JavaScript Devops
DevOps实践:通过云效实现hexo自动构建部署发布
DevOps是一种融合开发、技术运营和质量保证的流程,旨在增强跨部门沟通与协作。通过自动化软件交付和架构变更,DevOps加速了构建、测试和发布软件的过程。本文作者分享了如何使用阿里云效平台实现个人Hexo博客的自动化部署,从而实现持续集成和持续部署(CI/CD)。在应用DevOps之前,作者需手动上传和部署文件;应用后,只需提交Markdown文件,其余步骤由DevOps平台自动完成。通过云效平台的代码管理和流水线功能,实现了从代码提交到自动发布的无缝衔接。
65 2
DevOps实践:通过云效实现hexo自动构建部署发布

热门文章

最新文章