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

运维 | 使用 Docker 安装 Jenkins | Jenkins

运维 | 使用 Docker 安装 Jenkins | Jenkins

前言

本期内容主要是为了学习如何通过 Docker 安装Jenkins,仅作为记录与参考,希望对大家有所帮助。

准备工作

  • 系统:CentOS 7.9
  • 配置:4c8g

快速安装

下面以 Docker 方式安装 Jenkins 为例

环境搭建

  • Docker 安装文档:https://docs.docker.com/engine/install/
  • Docker Compose 安装文档:https://docs.docker.com/compose/install/
安装 Docker
  • 确保 yum 包更新到最新
yum update
  • 卸载旧版本
yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
  • 设置仓库源
yum install -y yum-utils
yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo
  • 开始安装
#由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
yum install docker-ce docker-ce-cli containerd.io
  • 启动和开机启动
systemctl start docker
systemctl enable docker
  • 验证安装是否成功
docker version
安装 Docker Compose

以下为 Docker Compose独立安装方式,其它方式可参考官方文档

  • 独立安装 Compose
curl -SL https://github.com/docker/compose/releases/download/v2.12.2/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
  • 命令执行失败
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  • 设置文件或文件夹权限
chmod +x /usr/local/bin/docker-compose
  • 校验是否安装成功
docker-compose version

安装Jenkins

Jenkins中文官网:https://www.jenkins.io/zh/

使用 Docker Compose 部署
  1. 在系统任意位置创建一个文件夹,此文档以 ~/opt/docker/jenkins 为例
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins

创建一些必要的文件或文件夹,保持目录结构如下示例:

mkdir -p ./{config,data,logs}
.
├── docker
│   └── jenkins
│       ├── docker-compose.yml
│       ├── data
│       └── config
│       └── logs

这个仅为参照,大家可按照自己的喜好即可。

注意:后续操作中,jenkins 产生的所有数据都会保存在这个目录,请妥善保存。

  1. 创建 docker-compose.yaml
version: '3'
services: # 集合                                docker_jenkins:user: root # 为了避免一些权限问题 在这我使用了rootprivileged: truerestart: always # 重启方式image: jenkins/jenkins:lts # 指定服务所使用的镜像 在这里我选择了 LTS (长期支持)container_name: jenkins # 容器名称ports: # 对外暴露的端口定义- 8082:8080 # 访问Jenkins服务端口- 50000:50000environment:TZ: Asia/Shanghaivolumes: # 卷挂载路径- ./data:/var/jenkins_home- /var/run/docker.sock:/var/run/docker.sock- /usr/bin/docker:/usr/bin/docker # 这是为了我们可以在容器内使用docker命令- /usr/local/bin/docker-compose:/usr/local/bin/docker-compose

/usr/share/jenkins 包含了一些 Jenkins 的配置,比如:插件之类的,有需要也可以映射到宿主机中

  1. 启动服务
docker-compose up -d

实时查看日志:

docker-compose logs -f
  1. 访问地址

安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080

此处会有几分钟的等待时间

使用 Docker 部署
  1. 在系统任意位置创建一个文件夹,此文档以 ~/opt/docker/jenkins 为例
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins

创建一些必要的文件或文件夹,保持目录结构如下示例:

.
├── docker
│   └── jenkins
│       ├── data
│       └── config
│       └── logs
  1. 启动服务
docker run \-u root \--rm \-d \-p 8080:8080 \-p 50000:50000 \-v /opt/docker/jenkins/data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \--name jenkins \jenkins/jenkins:lts

查看运行日志:

docker ps // 查看containerId
docker logs [ID | NAME]

查看实时日志:

docker logs -f [ID | NAME]

注意检查8080是否已经占用!如果占用修改端口

  1. 访问地址

安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080

此处会有几分钟的等待时间

使用指南

初始化

详情见官网教程:https://www.jenkins.io

解锁 Jenkins
  • 方式一

进入Jenkins容器:docker exec -it {Jenkins容器名} bash

例如: docker exec -it jenkins bash

查看密码:cat /var/jenkins_home/secrets/initialAdminPassword

复制密码到输入框里面

  • 方式二

查看日志获取密码

docker logs -f [ID|NAME]
或
docker-compose logs -f

正确输入密码后,按照推荐的指示引导操作,等到引导安装结束后进入Jenkins主页。

默认插件

无特别要求就选择推荐插件安装即可

创建管理员用户

重要配置

配置地址与邮箱

插件管理

安装 git paremeters
  • 搜索插件
  1. 进入 首页系统管理插件管理可选插件 界面

  2. 搜索 git paremeters 插件,点击安装即可

  • 配置插件
  1. 在项目常规项中勾选 This project is parameterized,并选择 Git Parameter

安装 nodejs
  • 搜索插件
  1. 进入 首页系统管理插件管理可选插件 界面

  2. 搜索 nodejs 插件,点击安装即可

  • 配置插件
  1. 进入 首页系统管理全局工具配置 界面
  2. 找到 NodeJS 配置栏

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

安装 Publish Over SSH
  • 搜索插件
  1. 进入 首页系统管理插件管理可选插件 界面

  2. 搜索 ssh 插件,点击安装即可

  • 配置插件
  1. 进入 首页系统管理全局工具配置 界面
  2. 找到 SSH Servers 配置栏

安装 Maven
  • 搜索插件
  1. 进入 首页系统管理插件管理可选插件 界面

  2. 搜索 Maven Integration 插件,点击安装即可

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 配置插件
  1. 进入 首页系统管理全局工具配置 界面
  2. 找到 maven–maven 配置栏

安装中文语言
  • 搜索插件
  1. 进入 首页系统管理插件管理可选插件 界面

  2. 搜索 Locale 插件,点击安装即可

安装完成后,在地址栏路径后输入 /restart,将重启 Jenkins

  • 配置插件
  1. 进入 首页系统管理系统配置 界面
  2. 找到 Default language 配置栏,输入zh_CNzh_TW

若以上方式无法生效,可尝试搜索 Localization: Chinese (Simplified) 插件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

最新版的 Jenkins 可能存在翻译不全或不生效情况

FAQ

安装完成却出现 Jenkins 实例已离线情况

原因是 jenkins 在下载插件之前会先检查网络连接,其会读取 default.json 文件中的网址,该文件位于 /var/jenkins_home/updates 下,connectionCheckUrl 默认是访问谷歌地址,如果没翻墙可能就会出错,所以将 connectionCheckUrl 的值改为www.baidu.com 即可,更改完重启服务。

当安装完成后访问地址出现 HTTP ERROR 503

出现该画面,很有可能是防火墙问题,比如:未开放当前访问的端口等

Jenkins初始化安装插件异常,无法进行下一步

  • 方式一

可尝试换一下网络或者检查是否开启代理之类的

  • 方式二

该方式是以 Jenkins 安装在宿主机中,至于 Docker 可参照该方式的处理流程

  1. 停止 Jenkins 服务
sudo systemctl stop jenkins
  1. 修改 config.xml文件
sudo vim /var/lib/jenkins/config.xml
Modify line 10 <useSecurity>true</useSecurity> to: <useSecurity>false</useSecurity> Delete lines <authorizationStrategy …/> and <securityRealm …> to</securityRealm>

结尾

本期的内容就到这里,路过的小伙伴记得支持一下哦!

  • Jenkins+Docker 实现一键自动化部署项目!步骤齐全,少走坑路
  • Jenkins 自动化发布前端项目

相关文章:

运维 | 使用 Docker 安装 Jenkins | Jenkins

运维 | 使用 Docker 安装 Jenkins | Jenkins 前言 本期内容主要是为了学习如何通过 Docker 安装Jenkins&#xff0c;仅作为记录与参考&#xff0c;希望对大家有所帮助。 准备工作 系统&#xff1a;CentOS 7.9配置&#xff1a;4c8g 快速安装 下面以 Docker 方式安装 Jenkin…...

linux-磁盘应用

目录 一、磁盘内容简述 1、一些基本概念 2、分区简述 3、常见文件系统 4、linux硬盘文件 二、对linux系统进行分区 1、用fdisk进行分区 2、用parted进行分区 一、磁盘内容简述 1、一些基本概念 - 扇区大小&#xff1a;512Btyes&#xff0c;0.5KB - 磁盘最小存储单位&…...

java版直播商城平台规划及常见的营销模式 电商源码/小程序/三级分销+商城免费搭建

涉及平台 平台管理、商家端&#xff08;PC端、手机端&#xff09;、买家平台&#xff08;H5/公众号、小程序、APP端&#xff08;IOS/Android&#xff09;、微服务平台&#xff08;业务服务&#xff09; 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …...

软考高级之系统架构师之软件工程

软件工程 面向对象设计原则 单一职责&#xff1a;设计目的单一的类开闭原则&#xff1b;对扩展开放&#xff0c;对修改关闭里氏替换&#xff1a;子类可以替代父类依赖倒置&#xff1a;要依赖于抽象&#xff0c;而不是实现。要针对接口编程&#xff0c;不要针对实现编程接口隔…...

SpringBoot集成与应用Neo4j

文章目录 前言集成使用定义实体配置定义Repository查询方法方式一&#xff1a;Query方式二&#xff1a;Cypher语法构建器方式三&#xff1a;Example条件构建器方式四&#xff1a;DSL语法 自定义方法自定义接口继承自定义接口实现自定义接口neo4jTemplateNeo4jClient 自定义抽象…...

做人,不一定要风风光光,但一定要堂堂正正。处事,不一定要尽善尽美,但一定要问心无愧。

做人&#xff0c;不一定要风风光光&#xff0c;但一定要堂堂正正。处事&#xff0c;不一定要尽善尽美&#xff0c;但一定要问心无愧。以真诚的心&#xff0c;对待身边的每一个人。以感恩的心&#xff0c;感谢拥有的一切。 未来&#xff0c;不是穷人的天下&#xff0c;也不是富人…...

51单片机实验:数码管动态显示00-99

1、实验要求 利用STC89C52RC单片机开发板实现&#xff1a;使用2位数码管循环显示00-99&#xff0c;每次间隔1s&#xff0c;并且当计数到20时&#xff0c;则蜂鸣器鸣响1次。 2、实验分析 程序实现分析&#xff1a; 1、定义数码管位选引脚&#xff08;P2.4、P2.5、P2.6、…...

【教3妹学编程-java实战5】结构体字段赋值的几种方式

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 2哥 :3妹&#xff0c;考考你&#xff0c;你知道java结…...

阿里蚂蚁淘宝等多次一面面试面经

一面采用电话面试笔试链接做算法题&#xff08;可能开视频&#xff09;的形式 蚂蚁第一次&#xff1a; 自我介绍 技术一般使用开源技术还是自己研发 开源spring cloud等 流水线用来做什么 用户是什么人 应用场景 是toB的对吧 学到的最前沿的技术有哪些 gateway全局权限…...

UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解

目录 0 引言1 全局对象&#xff08;全局变量&#xff09;1.1 游戏实例 GameInstance1.1.1 介绍1.1.2 使用 GameInstance 1.2 玩家控制器 PlayerController1.3 游戏世界类 UWorld &#x1f64b;‍♂️ 作者&#xff1a;海码007&#x1f4dc; 专栏&#xff1a;UE虚幻引擎专栏&…...

c#使用ExifLib库提取图像的相机型号、光圈、快门、iso、曝光时间、焦距信息等EXIF信息

近期公司组织了书画摄影比赛&#xff0c;本人作为摄影爱好者&#xff0c;平时也会拍些照片&#xff0c;这次比赛当然不能错过。为了提高获奖概率&#xff0c;选了19张图像作为参赛作品。但是&#xff0c;摄影作品要提交图像的光圈、曝光时间等参数。一两张还可以通过电脑自带软…...

C++入门05—指针

1. 指针的基本概念 指针的作用&#xff1a; 可以通过指针间接访问内存 内存编号是从0开始记录的&#xff0c;一般用十六进制数字表示 可以利用指针变量保存地址 2. 指针变量的定义和使用 指针变量定义语法&#xff1a; 数据类型 * 变量名&#xff1b; 示例&#xff1a; …...

Go学习第十六章——Gin文件上传与下载

Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例&#xff08;单文件&#xff09;1.2 服务端保存文件的几种方式SaveUploadedFileCreateCopy 1.3 读取上传的文件1.4 多文件上传 2. 文件下载2.1 快速入门2.2 前后端模式下的文件下载2.3 中文乱码问题 1. 文件上传 1.1 …...

2.MySQL的调控按钮——启动选项和系统变量

2.MySQL的调控按钮——启动选项和系统变量 1.启动选项和配置文件1.1 在命令行上使用选项1.2 配置文件中使用选项1.2.1 配置文件路径1.2.2 配置文件的内容1.2.3 特定 MySQL 版本的专用选项组1.2.4 配置文件的优先级1.2.5 同一个配置文件中多个组的优先级1.2.6 defaults-file 的使…...

故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断

文章目录 效果一览文章概述模型描述源码设计参考资料效果一览 文章概述 故障诊断模型 | Maltab实现CNN卷积神经网络故障诊断 模型描述 卷积神经网络(convolutional neural network)是具有局部连接、权重共享等特性的深层前馈神经网络,最早主要是用来处理图像信息。 相比于全…...

qt高精度定时器的使用停止线程应用

##线程停止 //线程停止应用 public: explicit WorkerThread(QObject *parent 0) :QThread(parent), m_bStopped(false){qDebug() << "Worker Thread : " << QThread::currentThreadId();}~WorkerThread(){stop();quit();wait();}void stop() {qDebug()…...

Spring Boot Actuator 介绍

Spring Boot Actuator是什么 Spring Boot Actuator 模块提供了生产级别的功能&#xff0c;比如健康检查&#xff0c;审计&#xff0c;指标收集&#xff0c;HTTP 跟踪等&#xff0c;帮助我们监控和管理Spring Boot 应用。 这个模块是一个采集应用内部信息暴露给外部的模块&…...

【MATLAB】安装Psychtoolbox

目录 一、下载Psychtoolbox工具包 1. 一个是这个ZTP文件 2. 分别下载 Subversion 1.7.x command-line client 和 gstreamer.freedesktop.org 二、解压工具包&#xff0c;保存至同一文件 三、安装到matlab 1. 安装psychtoolbox 2. 检查是否安装成功 一、下载Psychtoolbox…...

【Python机器学习】零基础掌握GradientBoostingClassifier集成学习

什么能有效地解决分类问题,特别是在数据复杂、特征多样的情况下? 面对这个问题,许多人可能会想到复杂的神经网络或深度学习方法。然而,有一种称为“梯度提升分类器”(Gradient Boosting Classifier)的算法,以其高准确度、灵活性和易用性赢得了大量用户的青睐。 假设在…...

RFNet模型数据集采集处理流程

文章目录 cityscapes数据集内容如何标注数据得到标签图片 cityscapes数据集内容 训练模型的时候下载了cityscapes里的disparity、gtFine和leftImg8bit。 共5000张图片。2975张训练&#xff0c;500张验证&#xff0c;1525test。每个目录下都有train、test和val的子目录,这些子…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

OpenLayers 可视化之热力图

注&#xff1a;当前使用的是 ol 5.3.0 版本&#xff0c;天地图使用的key请到天地图官网申请&#xff0c;并替换为自己的key 热力图&#xff08;Heatmap&#xff09;又叫热点图&#xff0c;是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

.Net框架,除了EF还有很多很多......

文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

04-初识css

一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...