jenkins+docker集成harbor实现可持续集成

这篇具有很好参考价值的文章主要介绍了jenkins+docker集成harbor实现可持续集成。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、前言

二、Harbor介绍

2.1 什么是Harbor

2.1.1 Harbor架构图

2.2 Harbor 特征

2.3 Harbor 核心组件

2.4 Harbor使用场景

三、Harbor部署

3.1 安装docker compose

3.1.1 安装方式一

3.2 基于python3 pip安装docker compose

3.2.1 安装python3

3.2.2 安装python-pip3并升级

3.2.3 执行命令安装 docker-compose

3.2.4 查看docker-compose版本

3.3 安装horbor

3.3.1 下载安装包

3.3.2 解压安装包

3.3.3 修改配置文件

3.3.4 执行安装

3.3.5 环境检查

3.3.6 浏览器访问

四、Harbor基本使用

4.1 机器准备

4.1.1 配置服务器免登

4.2 推送镜像到Harbor自定义镜像仓库

4.2.1 创建项目

4.2.2 修改docker配置文件

4.2.3 镜像打标

4.2.4 推送镜像

4.3 jenkins任务集成Harbor

4.3.1 修改jenkins的任务配置

4.3.2 重新执行任务

4.4 其他机器获取harbor镜像

4.4.1 A、B机器添加授信

4.4.2 删除并重新推送镜像

4.4.3 其他机器获取镜像

4.4.4 拉取镜像

4.5 使用jenkins任务进行分发镜像

4.5.1 配置全局ssh凭证

4.5.2 配置ssh连接信息

4.5.3 配置测试任务

五、镜像仓库备选方案

5.1 阿里云镜像仓库

5.2 dockerhub

5.3 Nexus Repository Manager

5.4 JFrog Artifactory

六、docker可视化管理工具

七、写在文末


一、前言

在上一篇,我们搭建了jenkins,并通过配置jenkins任务的方式完成了从拉取代码,到打包构建,最后制作docker镜像的完整步骤。但是到这里,我们会发现仍然有两个问题。

问题一:资源占用:

1、构建出来的镜像仍然留在jenkins这台机器上,久而久之,这台机器的空间将不堪重负;

2、如果直接运行镜像,这些镜像将会占用当前jenkins这台机器的资源,如果后续要运行更多的镜像,这台机器肯定吃不消

问题二:缺少镜像的统一分发和管理:

基于问题一,如何管理这些镜像呢?既然镜像不能一直留在这台jenkins机器,就需要引入其他的容器管理平台,该平台能够实现docker镜像的常规管理,比如容器的启停,删除,pull、push等操作。

基于上述这两个最紧迫的问题,该使用什么方法解决呢?这就需要引入docker的镜像管理工具。本文以Harbor为例进行详细的说明。

二、Harbor介绍

官方文档:Harbor docs | Harbor 1.10 Documentation

2.1 什么是Harbor

Harbor 是一个开源的容器镜像仓库,它提供了一个安全、可信赖的方式来存储和管理容器镜像。

  • Harbor 支持用户创建自己的私有镜像仓库,可以在其中存储各种容器镜像,并且可以对这些镜像进行权限管理、漏洞扫描、复制、备份等操作。

  • Harbor 还提供了 Web 界面和 RESTful API,使用户可以方便地进行镜像管理和操作。

  • 通过 Harbor,用户可以更加轻松地构建、部署和运行容器化应用。

2.1.1 Harbor架构图

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

2.2 Harbor 特征

Harbor 具备如下特征:

  • 基于角色的访问控制

    • 用户与Docker镜像仓库通过“项目”进行组织管理,一个用户可以对多个镜像仓库在同一个命名空间(project)里有不同的权限。

  • 图形化用户界面

    • 用户可以通过浏览器来浏览,检索当前Docker镜像仓库,管理项目和命名空间。

  • 镜像复制

    • 镜像可以在多个Registry实例中复制(同步)。尤其适合于负载均衡、高可用,混合云和多云的场景。

  • 部署简单

    • 提供在线和离线两种安装工具,也可以安装到vSphere平台(OVA方式)虚拟设备。

  • RESTful API

    • RESTful API 提供给管理员对于Harbor更多的操控,使得其它管理软件集成变得更容易。

  • AD/LDAP支持

    • Harbor可以集成企业内部已有的AD/LDAP,用于鉴权认证管理。

  • 国际化

    • 已拥有英文、中文、德文、日文和俄文的本地化版本。更多的语言将会添加进来。

  • 审计管理

    • 所有针对于镜像仓库的操作都可以被记录追溯,用于审计管理。

2.3 Harbor 核心组件

结合上述Harbor的架构,下面总结一下Harbor中涉及到的组件。

Harbor的Registry,UI,token等服务,通过一个前置的反向代理统一接收浏览器、Dockerfile客户端的请求,并将请求转发给后端不同的服务。

Registry

负责存储Docker镜像,并处理docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对Docker image有不同的读写权限,Registry会指向一个token服务,强制用户的每次docker pull/push请求都要携带一个合法的token,Registry会通过公钥对token进行解密验证。

Core services

这是Harbor的核心功能,主要提供以下服务

  • UI:提供图形化界面,帮助用户管理Registry上的镜像,并对用户进行授权

  • WebHook:为了及时获取Registry上image状态变化的情况,在Registry上配置webhook,把状态变化传递给UI模块。

  • Token:负责根据用户权限给每个docker push/pull命令签发token,Docker客户端向-Registry服务发起的请求,如果不包含token,会被重定向到这里,获得token后再重新向Registry进行请求

Database

为core services提供数据库服务,负责储存用户权限、审计日志、Docker image分组信息等数据

Job Services

提供镜像远程复制功能,可以把本地镜像同步到其他Harbor实例中。

Log Collector

为了帮助监控Harbor运行,负责收集其组件的log,供日后进行分析。

2.4 Harbor使用场景

Harbor主要有如下使用场景

  • 构建和管理私有镜像仓库:组织可以使用Harbor搭建自己的私有Docker Registry,方便存储和管理内部开发的镜像,保护知识产权和数据隐私。

  • 安全性管理:Harbor支持用户认证、访问控制、镜像签名等安全功能,确保镜像的安全性,防止恶意镜像的注入。

  • 镜像复制和同步:Harbor可以配置多个节点,实现镜像的复制和同步,方便在不同地区或部门之间共享镜像。

  • CI/CD集成:Harbor可以与CI/CD工具集成,如Jenkins、GitLab等,实现自动化构建、测试和部署。

接下来,将演示基于centos7系统演示如何搭建Harbor。

三、Harbor部署

3.1 安装docker compose

由于Harbor在后续对docker镜像管理和操作中,需要进行镜像的编排,需要用到docker compose,因此先安装docker compose。参考下面的步骤进行安装,这里提供了两种方式进行选择。

3.1.1 安装方式一

参照下面的命令执行安装

#获取安装包
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

#授权
chmod +x /usr/local/bin/docker-compose

#创建软连接
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

#查看docker-compose版本
docker-compose --version

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

在实际操作时发现,使用这种方式安装在拉取github的包时会非常慢,下面推荐第二种方式安装。

3.2 基于python3 pip安装docker compose

3.2.1 安装python3

sudo yum install python3

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.2 安装python-pip3并升级

yum -y install python3-pip
pip3 install --upgrade pip

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.3 执行命令安装 docker-compose

pip3 install docker-compose

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.2.4 查看docker-compose版本

docker-compose --version

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后重启docker

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3 安装horbor

3.3.1 下载安装包

版本可以自行选择,推荐使用2.x版本的

wget --no-check-certificate https://github.com/goharbor/harbor/releases/download/v2.10.0/harbor-offline-installer-v2.10.0.tgz

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.2 解压安装包

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.3 修改配置文件

进入解压后的harbor目录,修改 harbor.yml.tmpl 配置文件,注意复制一个配置文件

cp harbor.yml.tmpl harbor.yml

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

修改hostname:

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

注释https

  • 后续使用https访问的时候可以再配置,这里演示使用http;

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

需要关注的其他配置

  • 默认监听端口;
  • 初始化密码;

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.4 执行安装

配置修改完成,保存退出之后,直接调用目录下的安装脚本,这个过程可能比较漫长

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

直到看到下面的信息

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

补充

如何移除harbor已经安装的容器呢,使用命令:docker-compose down

3.3.5 环境检查

使用docker ps 命令检查一下,可以看到harbor启动了很多个容器

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

3.3.6 浏览器访问

浏览器访问 IP:80,就来到下面的登录页面,登录账户:admin/Harbor12345

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

登录之后来到如下控制台主页

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

界面上的各个菜单的功能有兴趣的同学可以继续深入研究,这里不再过多展开了。

四、Harbor基本使用

4.1 机器准备

为了后面的效果演示,需要准备两台服务器

机器 作用 备注
机器A 部署jenkins,Harbor服务 内存需要大点,上一篇使用该机器部署jenkins
机器B 业务服务器,部署docker镜像使用

 

 

4.1.1 配置服务器免登

为了在jenkins配置任务时能够方便的操作远程机器,建议设置下免登,即配置jenkins机器与目标业务服务器的免登授信操作,参考下面的操作步骤

机器A执行下面的命令

ssh-keygen -t rsa

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

将上一步生成的文件远程拷贝到机器B的相应目录下

cd .ssh
scp ./id_rsa.pub root@B机器公网IP:/root/.ssh/authorized_keys

拷贝完成后,使用ssh命令登录下B机器

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2 推送镜像到Harbor自定义镜像仓库

4.2.1 创建项目

即创建一个新的仓库,用于管理镜像

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

创建完成后,列表中多了一条数据

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2.2 修改docker配置文件

将下面的这行配置添加到docker的daemon.json文件中,找到insecure-registries标签追加即可

cd /etc/docker
vi daemon.json
Harbor部署的服务机器IP:80

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

加载配置文件并重启docker

systemctl daemon-reload
systemctl restart docker

4.2.3 镜像打标

在上一篇中,我们通过jenkins构建出来了一个springboot工程的镜像

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

但是如果要将这个镜像直接推送到Harbor仓库还不行,必须要按照Harbor的要求进行命名并重新打标,参考下面的命令执行;

docker tag 996ae7100be7 Harbor服务器地址:80/public/boot-docker:1.0

打完标签之后再次查看镜像,可以发现新的镜像已经显示出来了,细心的同学会发现,它们的镜像名是一样的

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.2.4 推送镜像

登录Harbor

docker login -u admin -p Harbor12345 Harbor机器IP:8085

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

使用下面的命令,推送镜像到Harbor,这个过程根据网络情况可能有点漫长

docker push 打完tag的镜像名

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

push完成之后,可以在Harbor的控制台界面,在public项目中就能看到刚刚推上来的镜像了

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.3 jenkins任务集成Harbor

基于上一篇中我们在jenkins中创建的测试任务,我们做一下修改,将构建完成的镜像推送至Harbor的仓库中。

4.3.1 修改jenkins的任务配置

在post steps里面,添加如下的脚本(仅供参考,实际操作时还需要结合自身的机器情况),该脚本主要做了下面几件事:

  • 基于Dockerfile将maven构建出来的jar包制作成docker镜像;

  • 删除之前通过构建的带标签版本号的镜像;

  • 镜像打标签;

  • 登录Harbor;

  • 将打标签的镜像推送到Harbor的仓库(上面创建的public项目仓库);

#!/usr/bin/env bash
echo '打包完成,开始构建镜像'
#dockerfile:build
docker build -t boot-docker:1.0 .

sleep 10
docker rmi -f 打完tag的镜像

sleep 10
docker tag 原镜像

sleep 10
echo '登录harbor'
docker login -u admin -p Harbor12345 Harbor机器IP:8085

sleep 10
docker push 本次被打完tag的镜像

echo '完成docker镜像推送'

4.3.2 重新执行任务

保存上述配置,重新点击执行任务,等待构建完成即可

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

构建完成后,检查镜像,可以看到带有2.0标签的镜像就创建出来了

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

同时在Harbor控制台的public项目下,也能看到上面推送过来的docker镜像

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4 其他机器获取harbor镜像

另有一台新机器,即上述的B机器,需要从harbor镜像仓库中拉取镜像到自己机器上面部署,该如何实现呢?

4.4.1 A、B机器添加授信

在harbor机器上面的docker配置文件中添加如下配置

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

保存后重新加载配置,并重启docker

systemctl daemon-reload 
systemctl restart docker

建议在A,B两台机器上均做此配置,避免后面出现其他的错误(后文会提到),简单来说,就是将各自的机器IP配置到 insecure-registries中即可。

4.4.2 删除并重新推送镜像

删除原有的镜像

docker rmi -f c9bc81de8fb3

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后通过jenkins任务或命令重新推送镜像

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4.3 其他机器获取镜像

现在假设我们登录到了另一台机器,假设为B机器,即上述授信配置中的这台机器,使用docker命令登录harbor

docker login -u admin -p Harbor12345 Harbor部署机器:8085

如果出现下面的错误,表面在B机器的docker配置中,认为从上述的Harbor机器登录是不可信的

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

遇到这个问题时,需要将Harbor机器的docker配置,拷贝到B机器上来,按照上面同样的方式,修改一下这里的daemon.json配置文件,将Harbor机器的IP信息配置进去

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

最后加载B机器的docker配置,然后重启docker,再次使用Docker命令登录Harbor仓库,此时就登录进来了

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.4.4 拉取镜像

上一步登录成功后,就可以远程拉取Harbor镜像仓库中的镜像了

docker pull 前面最新打完tag的标签

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

拉取完成后,使用 docker images命令就能看到上面的那个镜像了,后续就可以使用docker命令直接启动镜像即可。

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5 使用jenkins任务进行分发镜像

上面使用jenkins任务将构建完的镜像通过打标签,然后push到了Harbor仓库中,接下来需要将这些镜像分发到具体的业务服务器上,该怎么操作呢?参考下面的流程。

4.5.1 配置全局ssh凭证

找到ssh并安装

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

设置凭证,系统管理 —> 添加凭证—>添加域,自定义一个名称,这里意思是将使用当前的jenkins管理你的B机器

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

配置凭证

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5.2 配置ssh连接信息

通过系统管理 -> 全局配置找到 SSH sites 配置的地方,填写下面的信息

 jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

配置之后是否可以连接呢?点击右边的 Check connection按钮,如果连接成功,说明配置没问题了,然后保存配置

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

4.5.3 配置测试任务

创建一个新的任务

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

进入任务的配置页面,在构建环境中,在Build Steps里,选择下面执行脚本的一项

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

选择之后,编写测试脚本

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

保存配置并执行任务,测试成功

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

编写脚本,将上述最新打标的镜像推送至B机器

echo '在B机器上面执行命令'
echo '准备登录Harbor机器的仓库'

docker login -u admin -p Harbor12345 Harbor机器IP:8085

echo '登录成功,开始拉取镜像'

docker pull 最新tag的镜像

echo '拉取镜像成功'


然后执行,等待镜像的拉取完成即可,如果后续还有其他命令要执行,可以继续再在上述的执行脚本中添加即可。

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

任务完成之后,登录B机器,检查镜像是否拉取成功,然后就可以基于当前的镜像进行后续的操作了。

jenkins+docker集成harbor实现可持续集成,分布式技术,技术总结,架构技术栈,jenkins集成docker,jenkins集成harbor,jenkins整合docker,jenkins整合harbor,jenkins使用harbor,jenkins配置harbor

五、镜像仓库备选方案

5.1 阿里云镜像仓库

上述关于镜像仓库的选择,我们使用的是Harbor作为解决方案进行说明,事实上,关于企业应用的镜像仓库,很多云厂商也提供了解决方案,像阿里云,如果你购买了阿里云的云服务器,可以直接免费使用阿里云提供的镜像仓库作为你的镜像托管中心,这个在另一篇文章中有详细的说明,可以参考:k8s部署springboot项目,网上的资料也比较多,这也是一种比较成熟的解决方案。

5.2 dockerhub

dockerhub是docker原生的镜像仓库,比如大家平时拉取某个技术组件镜像时,如果没有配置镜像源,将直接从dockerhub上拉取,如果想节省成本,也可以考虑直接将镜像推送至dockerhub仓库。

5.3 Nexus Repository Manager

Sonatype Nexus Repository Manager也是一个流行的仓库管理工具,支持Docker以及其他包管理器。它提供了企业级的安全性、可靠性和性能优化。

5.4 JFrog Artifactory

JFrog Artifactory是一款企业级的仓库管理工具,支持多种软件包格式,包括Docker镜像。它提供了高级的存储管理、权限控制和审计功能。

六、docker可视化管理工具

除了Harbor,你也可以选择其他的工具,这里列举下面几种常见的Docker镜像可视化管理工具:

Rancher

Rancher是一个开源的容器管理平台,提供了图形化界面来管理Docker容器和集群。它支持多云环境下的容器部署和管理。可以参考之前的一篇关于rancher的介绍:rancher使用详解

Shipyard

Shipyard是一个开源的Docker管理工具,提供了Web界面来管理Docker容器、镜像、网络等,还支持集群管理功能。

Portainer

Portainer是一款开源的轻量级Docker管理界面,提供直观的用户界面,可以方便地管理Docker容器、镜像、网络等。

Cockpit

Cockpit是一个基于Web的服务器管理工具,可以用于监控和管理Linux系统上的Docker容器和服务。

七、写在文末

本文通过较大的篇幅详细介绍了Harbor这款企业级docker管理工具的使用,并通过案例演示了如何在jenkins中配置任务集成Harbor,从而实现镜像的构建推送与分发,希望对看到的同学有用哦,本篇到此结束,感谢观看。文章来源地址https://www.toymoban.com/news/detail-852250.html

到了这里,关于jenkins+docker集成harbor实现可持续集成的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot+Docker+Git+Jenkins实现简易的持续集成和持续部署

    努力了这么久,但凡有点儿天赋,也该有些成功的迹象了。 本篇文章引导你使用 Jenkins 部署 SpringBoot 项目,同时使用 Docker 和 Git 实现简单的持续集成和持续部署。(项目地址:sso-merryyou) 流程图如下: push 代码到 Github 触发 WebHook 。(因网络原因,本篇使用gitee) Jenkins 从仓库拉去

    2024年02月21日
    浏览(31)
  • 基于Jenkins实现Docker应用的持续集成与部署

    1. 服务器部署安装有docker 在docker应用开发中最常见的就是开发Dockerfile文件,可以使用代码仓库来管理它。 而在企业私有开发环境中是无法访问公有代码仓库(如Github)的。这时可以搭建私有代码仓库。 安装软件 sudo yum install -y subversion mod_dav_svn 创建svn仓库 sudo mkdir -p /srv/s

    2023年04月20日
    浏览(31)
  • 一文完成Jenkins+Docker+Git(多分支构建)打包、部署,实现可持续化集成

    官网:Jenkins官网 参考:Jenkins简介 Jenkins是一个开源软件项目,起源于Hudson(Hudson是商用的),是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成 可在Tomcat等流行的servlet容器中运行,也可独立运

    2024年01月18日
    浏览(56)
  • Docker搭建Jenkins持续集成

    目录 注意 前提条件  一、安装Docker 1.1、检查并清楚系统残余项,并安装Docker环境  1.2、安装下载Docker依赖的工具  1.3、添加清华软件源  1.4、更新yum缓存  1.5、安装Docker(CE-社区版) 1.6、 启动Docker 1.7、Docker设置开机自启 二、下载Jenkins镜像  2.1、挂载目录 2.2、启动镜像

    2024年01月25日
    浏览(35)
  • .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .NET Core部署到linux(CentOS)最全解决方案,高阶篇(Docker+Nginx 或 Jexus) 通过前面三篇文章的介绍,我们已经对.net core多方案部署到linux下有了非常全面的认识

    2024年02月02日
    浏览(35)
  • Jenkins+Docker+SpringCloud微服务持续集成

    开发人员每天把代码提交到Gitlab代码仓库 Jenkins从Gitlab中拉取项目源码,编译并打成Jar包,然后构建成Docker镜像,将镜像上传到Harbor私有仓库 Jenkins发送SSH远程命令,让生产部署服务器到Harbor私有仓库拉取镜像到本地,然后创建容器 最后,用户可以访问到容器 服务器列表 服务

    2024年02月13日
    浏览(33)
  • Jenkins+Docker+SpringCloud微服务持续集成之集群部署

      idea中修改注册中心eureka的配置,单节点换成集群   在启动微服务的时候,加入参数: spring.profiles.active 来读取对应的配置 网关服务配置   权限管理配置   业务模块配置       该插件可以支持多选框         逗号必须得是英文,否则出错       循环测试代码检查      

    2024年02月07日
    浏览(34)
  • 基于Docker+Jenkins+Gitl搭建持续集成环境(部分关键笔记)

    Jenkins 访问地址: ip地址:10000 查看密码 问题 jenkins升级问题 jenkins时区设置问题 配置插件更新代理 安装WebHooks并启用 配置Jenkins参数 解决jenkins安装插件报错: An error occurred during installation: No such plugin: cloudbees-folder Index of /jenkins/plugins/skip-certificate-check/latest/ | 清华大学开源软件

    2024年02月10日
    浏览(32)
  • Jenkins+Docker+SpringCloud微服务持续集成项目优化和微服务集群

    基于 Jenkins+Docker+SpringCloud微服务持续集成 作优化 上面部署方案存在的问题: 一次只能选择一个微服务部署 只有一台生产者部署服务器 每个微服务只有一个实例,容错率低 优化方案: 在一个Jenkins工程中可以选择多个微服务同时发布 在一个Jenkins工程中可以选择多台生产服务

    2024年02月13日
    浏览(32)
  • Gitlab + Docker + Jenkins + Harbor实现自动化部署

    目录 文章目录 前言 一、第一台服务器--Jenkins 1、安装前 2、安装Jenkins 3、修改正在跑容器的端口 4、Jenkins内部插件和配置  二、第二台服务器--Harbor 1、安装docker-compose 2.安装及配置 3、卸载Harbor  4、Harbor启动后操作 三、第三台服务器--生产环境  1、配置私服地址 四、Jenkin

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包