运维 | 使用 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的子目录,这些子…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...