【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

相关实践学习
通过workbench远程登录ECS,快速搭建Docker环境
本教程指导用户体验通过workbench远程登录ECS,完成搭建Docker环境的快速搭建,并使用Docker部署一个Nginx服务。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
7月前
|
jenkins Devops 持续交付
【devops】七、集成Sonar Qube(下)
【devops】七、集成Sonar Qube(下)
|
7月前
|
安全 前端开发 Devops
【devops】七、集成Sonar Qube(上)
【devops】七、集成Sonar Qube(上)
137 0
|
7月前
|
jenkins Devops 持续交付
【devops】八、集成Harbor(下)
【devops】八、集成Harbor(下)
|
Kubernetes 前端开发 jenkins
devops-在jenkins-slave(k8s)中集成Jmeter使用
devops-在jenkins-slave(k8s)中集成maven使用
devops-在jenkins-slave(k8s)中集成Jmeter使用
|
存储 Kubernetes Java
devops-在jenkins-slave(k8s)中集成maven使用
在jenkins-slave(k8s)中集成maven使用
devops-在jenkins-slave(k8s)中集成maven使用
|
2月前
|
运维 安全 Devops
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
在数字化转型的浪潮中,企业对于IT基础设施的要求越来越高,不仅需要快速响应市场变化,还要确保系统的稳定与安全。本文深入探讨了如何通过融合DevOps文化和容器化技术来构建一个高效、稳定且易于管理的云基础设施。通过实际案例分析,阐述了持续集成/持续部署(CI/CD)流程的优化、自动化测试、监控以及日志管理等关键环节的实施策略,旨在为运维专业人员提供一套切实可行的解决方案。
31 3
|
2月前
|
运维 Kubernetes Devops
构建高效可靠的云基础设施:DevOps与容器化技术融合实践
【2月更文挑战第30天】 在当今快速迭代和竞争激烈的软件开发领域,传统的IT运维模式已难以满足业务发展的需要。本文将探讨如何通过整合DevOps文化和容器化技术,构建一个既高效又可靠的云基础设施。文章首先回顾了DevOps的核心理念及其对运维工作流的影响,接着深入讨论了容器化技术的优势和挑战,并提出了一套结合两者的实施方案。最后,通过案例分析展示了该方案在实际环境中的应用效果和潜在益处。
|
15天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:DevOps与容器技术融合实践
【4月更文挑战第15天】 在当今快速发展的信息技术时代,传统的IT运维模式已难以满足业务敏捷性的需求。本文旨在探讨如何通过整合DevOps理念和容器技术来构建一个高效的自动化运维体系。文章将详细阐述DevOps的核心原则、容器技术的基础知识,以及两者结合的优势。此外,文中还将分享一系列实践经验,包括持续集成/持续部署(CI/CD)流程的搭建、微服务架构的应用,以及监控和日志管理策略的优化,以期帮助企业实现快速、可靠且安全的软件交付过程。
|
17天前
|
运维 Devops 持续交付
构建高效稳定的云基础设施:DevOps与容器化技术融合实践
【4月更文挑战第13天】 在当今快速迭代和持续部署的软件开发环境中,传统的IT运维模式已难以满足业务发展的需求。本文聚焦于如何通过融合DevOps理念与容器化技术,构建一个高效、稳定且易于管理的云基础设施。文章将探讨持续集成/持续交付(CI/CD)流程的优化、容器化技术的最佳实践、以及微服务架构下的应用管理,以期为企业提供一种改进运维效率、加速产品上市时间,同时保障系统稳定性的解决方案。
|
28天前
|
运维 Kubernetes Devops
构建高效自动化运维体系:基于容器技术的DevOps实践
【4月更文挑战第2天】随着云计算和微服务架构的兴起,传统的IT运维模式正逐渐向DevOps转型。本文将探讨如何通过容器技术实现自动化运维,提高系统部署效率与稳定性。首先,分析了当前企业面临的运维挑战及DevOps的优势;其次,详细介绍了容器技术的核心组件以及在自动化运维中的应用;最后,结合实际案例,展示了基于容器的DevOps流程设计与实施步骤,旨在为企业构建高效、可靠的自动化运维体系提供参考。
15 2

热门文章

最新文章