运维 | 使用 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 部署
- 在系统任意位置创建一个文件夹,此文档以
~/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 产生的所有数据都会保存在这个目录,请妥善保存。
- 创建
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 的配置,比如:插件之类的,有需要也可以映射到宿主机中
- 启动服务
docker-compose up -d
实时查看日志:
docker-compose logs -f
- 访问地址
安装完成后访问地址:http://{部署Jenkins所在服务IP}:8080
此处会有几分钟的等待时间
使用 Docker 部署
- 在系统任意位置创建一个文件夹,此文档以
~/opt/docker/jenkins
为例
mkdir -p ~/opt/docker/jenkins && cd ~/opt/docker/jenkins
创建一些必要的文件或文件夹,保持目录结构如下示例:
.
├── docker
│ └── jenkins
│ ├── data
│ └── config
│ └── logs
- 启动服务
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是否已经占用!如果占用修改端口
- 访问地址
安装完成后访问地址: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
- 搜索插件
-
进入
首页
–系统管理
–插件管理
–可选插件
界面 -
搜索
git paremeters
插件,点击安装即可
- 配置插件
- 在项目常规项中勾选
This project is parameterized
,并选择Git Parameter
安装 nodejs
- 搜索插件
-
进入
首页
–系统管理
–插件管理
–可选插件
界面 -
搜索
nodejs
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
NodeJS
配置栏
安装 Publish Over SSH
- 搜索插件
-
进入
首页
–系统管理
–插件管理
–可选插件
界面 -
搜索
ssh
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
SSH Servers
配置栏
安装 Maven
- 搜索插件
-
进入
首页
–系统管理
–插件管理
–可选插件
界面 -
搜索
Maven Integration
插件,点击安装即可
- 配置插件
- 进入
首页
–系统管理
–全局工具配置
界面 - 找到
maven–maven
配置栏
安装中文语言
- 搜索插件
-
进入
首页
–系统管理
–插件管理
–可选插件
界面 -
搜索
Locale
插件,点击安装即可
安装完成后,在地址栏路径后输入 /restart
,将重启 Jenkins
- 配置插件
- 进入
首页
–系统管理
–系统配置
界面 - 找到
Default language
配置栏,输入zh_CN
或zh_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 可参照该方式的处理流程
- 停止 Jenkins 服务
sudo systemctl stop jenkins
- 修改
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,仅作为记录与参考,希望对大家有所帮助。 准备工作 系统:CentOS 7.9配置:4c8g 快速安装 下面以 Docker 方式安装 Jenkin…...

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

java版直播商城平台规划及常见的营销模式 电商源码/小程序/三级分销+商城免费搭建
涉及平台 平台管理、商家端(PC端、手机端)、买家平台(H5/公众号、小程序、APP端(IOS/Android)、微服务平台(业务服务) 2. 核心架构 Spring Cloud、Spring Boot、Mybatis、Redis …...
软考高级之系统架构师之软件工程
软件工程 面向对象设计原则 单一职责:设计目的单一的类开闭原则;对扩展开放,对修改关闭里氏替换:子类可以替代父类依赖倒置:要依赖于抽象,而不是实现。要针对接口编程,不要针对实现编程接口隔…...

SpringBoot集成与应用Neo4j
文章目录 前言集成使用定义实体配置定义Repository查询方法方式一:Query方式二:Cypher语法构建器方式三:Example条件构建器方式四:DSL语法 自定义方法自定义接口继承自定义接口实现自定义接口neo4jTemplateNeo4jClient 自定义抽象…...
做人,不一定要风风光光,但一定要堂堂正正。处事,不一定要尽善尽美,但一定要问心无愧。
做人,不一定要风风光光,但一定要堂堂正正。处事,不一定要尽善尽美,但一定要问心无愧。以真诚的心,对待身边的每一个人。以感恩的心,感谢拥有的一切。 未来,不是穷人的天下,也不是富人…...

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

【教3妹学编程-java实战5】结构体字段赋值的几种方式
插: 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 坚持不懈,越努力越幸运,大家一起学习鸭~~~ 2哥 :3妹,考考你,你知道java结…...
阿里蚂蚁淘宝等多次一面面试面经
一面采用电话面试笔试链接做算法题(可能开视频)的形式 蚂蚁第一次: 自我介绍 技术一般使用开源技术还是自己研发 开源spring cloud等 流水线用来做什么 用户是什么人 应用场景 是toB的对吧 学到的最前沿的技术有哪些 gateway全局权限…...

UE4 中可全局获取的变量(例如游戏实例、玩家控制器等) 详解
目录 0 引言1 全局对象(全局变量)1.1 游戏实例 GameInstance1.1.1 介绍1.1.2 使用 GameInstance 1.2 玩家控制器 PlayerController1.3 游戏世界类 UWorld 🙋♂️ 作者:海码007📜 专栏:UE虚幻引擎专栏&…...

c#使用ExifLib库提取图像的相机型号、光圈、快门、iso、曝光时间、焦距信息等EXIF信息
近期公司组织了书画摄影比赛,本人作为摄影爱好者,平时也会拍些照片,这次比赛当然不能错过。为了提高获奖概率,选了19张图像作为参赛作品。但是,摄影作品要提交图像的光圈、曝光时间等参数。一两张还可以通过电脑自带软…...

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

Go学习第十六章——Gin文件上传与下载
Go web框架——Gin文件上传与下载 1. 文件上传1.1 入门案例(单文件)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 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用。 这个模块是一个采集应用内部信息暴露给外部的模块&…...

【MATLAB】安装Psychtoolbox
目录 一、下载Psychtoolbox工具包 1. 一个是这个ZTP文件 2. 分别下载 Subversion 1.7.x command-line client 和 gstreamer.freedesktop.org 二、解压工具包,保存至同一文件 三、安装到matlab 1. 安装psychtoolbox 2. 检查是否安装成功 一、下载Psychtoolbox…...
【Python机器学习】零基础掌握GradientBoostingClassifier集成学习
什么能有效地解决分类问题,特别是在数据复杂、特征多样的情况下? 面对这个问题,许多人可能会想到复杂的神经网络或深度学习方法。然而,有一种称为“梯度提升分类器”(Gradient Boosting Classifier)的算法,以其高准确度、灵活性和易用性赢得了大量用户的青睐。 假设在…...

RFNet模型数据集采集处理流程
文章目录 cityscapes数据集内容如何标注数据得到标签图片 cityscapes数据集内容 训练模型的时候下载了cityscapes里的disparity、gtFine和leftImg8bit。 共5000张图片。2975张训练,500张验证,1525test。每个目录下都有train、test和val的子目录,这些子…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...

听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...

嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...

Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
pycharm 设置环境出错
pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

Sklearn 机器学习 缺失值处理 获取填充失值的统计值
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 Scikit-learn 处理缺失值并提取填充统计信息的完整指南 在机器学习项目中,数据清…...