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

docker安装jenkins v2.504.1集群

1 概述

Jenkins是一款开源的、基于Java开发的持续集成(CI)与持续交付(CD)工具,旨在通过自动化构建、测试和部署流程,提升软件开发效率与质量。 ‌

1.1 核心功能与特点

  • 持续集成与交付‌
    Jenkins支持自动化构建、测试和部署,通过频繁集成代码(如每日多次)快速发现错误,确保软件质量。
    提供Pipeline功能,可定义完整的CI/CD流程,覆盖从代码提交到生产环境部署的全生命周期。
    ‌插件生态系统‌

  • 拥有数百个插件
    支持与Git、Maven、Docker等工具集成,扩展性强。插件涵盖版本控制、测试框架、部署平台等,满足多样化需求。

  • 易用性与可扩展性‌
    提供Web界面配置,无需数据库支持,安装简单(支持War包、RPM等方式)。
    支持分布式构建,可在多台机器上并行执行任务,提升效率。

  • 跨平台支持‌
    兼容Windows、Linux、macOS等操作系统,适应不同开发环境。

1.2 应用场景

‌大型项目与微服务架构‌:频繁更新的项目(如微服务)可通过Jenkins实现高效自动化部署。
‌敏捷开发与DevOps‌:作为CI/CD核心工具,支持团队协作与快速迭代。

2 环境

资源说明
jenkins master10.0.11.239、centos 7.9、docker运行、工作目录/home/jenkins/jenkins_home
jenkins slave110.0.3.64、centos 7.9、docker运行、工作目录/home/jenkins/agent

在这里插入图片描述


3 部署

通过docker容器部署一个jenkins master节点和一个jenkins slave节点。部署成功后,可在web控制台看见一个集群。

3.1 jenkins master部署

3.1.1 安装docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum install yum-utils -y
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum list docker-ce --showduplicates
yum install docker-ce-cli-20.10.5-3.el7 docker-ce-20.10.5-3.el7 -ymkdir -p /etc/docker
cat > /etc/docker/daemon.json << EOF
{"max-concurrent-downloads": 10,"log-driver": "json-file","log-level": "warn","log-opts": {"max-size": "100m","max-file": "3"},"live-restore": true,"exec-opts": ["native.cgroupdriver=systemd"]
}
EOFsystemctl daemon-reload
systemctl enable docker
systemctl restart docker

3.1.2 安装docker-compose

docker run --privileged --rm -v /usr/local/bin/:/dest registry.cn-hangzhou.aliyuncs.com/lwmacct/file:docker-compose-linux-x86_64-v2.2.3-t2022020101
docker-compose -v

3.1.3 安装jenkins master

工作目录宿主机的/home/jenkins/jenkins_home,需要从容器里映射出来。
生成docker-compose.yml文件:

mkdir -p /home/jenkins
cd /home/jenkinscat > docker-compose.yml << EOF
version: "3.8"
services:jenkins:image: jenkins/jenkins:ltscontainer_name: jenkinsrestart: alwaysprivileged: trueuser: rootvolumes:- /home/jenkins/jenkins_home:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sockports:- "8080:8080"- "50000:50000"environment:TZ: Asia/Shanghai
EOF
docker-compose up -d

在这里插入图片描述

浏览器访问:服务器IP:8080端口。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

[ Manage Jenkins ] —> [ Appearance]中,设置语言为中文。

3.1.4 新增jenkins工作节点的预配置

工作节点的名称设置为slave01,工作目录设置为:/home/jenkins/agent。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
从上图可以看见,工作节点加入jenkins集群的命令很简单。记住这些命令的参数,稍后,参数信息会放到容器的环境变量中。


3.2 jenkins slave部署

slave服务器也需要安装docker组件,命令参考上面的步骤。

3.2.1 创建jenkins slave容器镜像

下载Agent的API如下:

GET /jnlpJars/agent.jar

使用curl命令即可下载:

mkdir -p /tmp/jenkins-agent
cd /tmp/jenkins-agent
export master=10.0.11.239:8080
curl -sO http://$master/jnlpJars/agent.jar

在这里插入图片描述

Dockerfile内容如下:

FROM jenkins/agent:latest-jdk17USER root
ENV TZ=Asia/Shanghai
COPY agent.jar /home/jenkins
RUN chown jenkins:jenkins /home/jenkins/agent.jarRUN sed -i "s@http://\(deb\|security\).debian.org@https://mirrors.aliyun.com@g" /etc/apt/sources.list.d/debian.sources
RUN apt-get update && apt-get install -y \git \maven \curl \&& rm -rf /var/lib/apt/lists/*USER jenkins
CMD java -jar agent.jar -url $JENKINS_MASTER_URL -secret $JENKINS_SECRET -name $JENKINS_AGENT_NAME -webSocket -workDir $JENKINS_WORKDIR

在这里插入图片描述
使用docker build命令即可,这里有一个现成的容器镜像:

docker pull swr.cn-south-1.myhuaweicloud.com/migrator/jenkins-agent:latest-jdk17

3.2.2 创建jenkins slave容器

将slave01工作节点加入jenkins集群,依据节点加入的预配置信息填充下面的环境变量:

useradd -u 1000 -s /sbin/nologin jenkins
mkdir -p /home/jenkins/agent
chown -R jenkins:jenkins /home/jenkinsexport JENKINS_MASTER_URL=http://10.0.11.239:8080/
export JENKINS_SECRET=**************在web控制台复制得到的密钥**************
export JENKINS_AGENT_NAME=slave01
export JENKINS_WORKDIR=/home/jenkins/agentdocker run -d \--name jenkins-agent-test \-e JENKINS_MASTER_URL=$JENKINS_MASTER_URL \-e JENKINS_SECRET=$JENKINS_SECRET \-e JENKINS_AGENT_NAME=$JENKINS_AGENT_NAME \-e JENKINS_WORKDIR=$JENKINS_WORKDIR \
swr.cn-south-1.myhuaweicloud.com/migrator/jenkins-agent:latest-jdk17

在这里插入图片描述
slave容器启动后依据环境变量的信息加入jenkins集群,在jenkins控制台可见slave工作节点已成功连接到master节点:
在这里插入图片描述

4 小结

本文通过实战介绍利用docker容器部署jenkins集群。

http://www.xdnf.cn/news/3487.html

相关文章:

  • 【业务领域】InfiniBand协议总结
  • Flowable7.x学习笔记(十七)审批我的待办
  • MySQL 第一讲---基础篇 安装
  • Linux 下使用tcpdump进行网络分析原
  • 颠覆者DeepSeek:从技术解析到实战指南——开源大模型如何重塑AI生态
  • 紫荆阁电玩平台环境搭建与系统运行实录(蒙特卡洛系列)
  • 单片机-STM32部分:1、STM32介绍
  • 【SpringBoot】Spring中事务的实现:声明式事务@Transactional、编程式事务
  • 纯前端专业PDF在线浏览器查看器工具
  • 【数据结构】String字符串的存储
  • 当MCP撞进云宇宙:多芯片封装如何重构云计算的“芯“未来?
  • 循环插入数据库行
  • LEETERS题解
  • 【速写】prune与activate
  • 尝试leaflet+webassemly
  • 【Python-Day 8】从入门到精通:Python 条件判断 if-elif-else 语句全解析
  • day09-面向对象综合训练
  • 实验三 软件黑盒测试
  • 【记录】台式机安装GTX1660驱动过程
  • 【RocketMQ 生产者消费者】- 同步、异步、单向发送消费消息
  • 学习与规划的融合Dyna-Q:python从零实现
  • BOFZ 緩衝區溢出shell脚本檢測工具
  • XGBoost算法详解:原理、实现与调优指南
  • py使用uniad原生sdk 3, 放弃Buildozer,使用BeeWare
  • 字符串转换整数(atoi)(8)
  • c++题目_P1027 [NOIP 2001 提高组] Car 的旅行路线
  • 征服大海的人
  • 算法题题型总结
  • Python学习笔记(第二部分)
  • ​​​​​​​2025年第二十二届五一数学建模竞赛题目A题 支路车流量推测问题