运维 | 使用 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 自动化发布前端项目

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/170148.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【java学习—八】单例设计模式(5)

文章目录 1. 相关概念2. 单例设计模式-饿汉式3. 单例设计模式-懒汉式4. 总结 1. 相关概念 单例&#xff1a;只有一个实例&#xff08;实例化对象&#xff09; 设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的…

Android笔记

目录 触摸事件java弱引用WorkerThread注解NonNull注解 触摸事件 java弱引用 创建对象的弱引用&#xff0c;在没有强引用指向改对象的情况下&#xff0c;垃圾回收器可以将其回收 WorkerThread注解 NonNull注解 用在方法的参数前&#xff0c;表示该参数不能为空。

25.2 MySQL 运算符

1. 伪表 在MySQL中, DUAL是一个特殊的单行, 单列的虚拟表, 主要用于在SELECT语句中计算表达式或执行函数, 而不需要从实际的数据表中检索数据. 使用DUAL的原因主要有以下几点:* 1. 简化计算: 通过在SELECT语句中使用DUAL, 可以方便地计算表达式或执行函数, 而无需创建临时表或…

SpringMVC系列-5 消息转换器

背景 SpringMVC系列的第五篇介绍消息转换器&#xff0c;本文讨论的消息转换指代调用Controller接口后&#xff0c;对结果进行转换处理的过程。 内容包括介绍自定义消息转换器、SpringMVC常见的消息转换器、Spring消息转换器工作原理等三部分。 本文以 SpringMVC系列-2 HTTP请求…

Selenium获取百度百科旅游景点的InfoBox消息盒

前面我讲述过如何通过BeautifulSoup获取维基百科的消息盒&#xff0c;同样可以通过Spider获取网站内容&#xff0c;最近学习了SeleniumPhantomjs后&#xff0c;准备利用它们获取百度百科的旅游景点消息盒&#xff08;InfoBox&#xff09;&#xff0c;这也是毕业设计实体对齐和属…

酷开科技 | 酷开系统沉浸式大屏游戏更解压!

随着家庭娱乐需求日益旺盛&#xff0c;越来越多的家庭消费者和游戏玩家开始追求大屏游戏带来的沉浸感。玩家在玩游戏的时候用大屏能获得更广阔的视野和更出色的视觉包围感&#xff0c;因此用大屏玩游戏已经成为了一种潮流。用酷开系统玩大屏游戏&#xff0c;过瘾又刺激&#xf…

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】

【在英伟达nvidia的jetson-orin-nx和PC电脑ubuntu20.04上-装配ESP32开发调试环境-基础测试】 1、概述2、实验环境3、 物品说明4、参考资料与自我总结5、实验过程1、创建目录2、克隆下载文件3、 拉取子目录安装和交叉编译工具链等其他工具4、添加环境变量6、将样例文件拷贝到桌面…

计算机网络——理论知识总结(下)

接上条&#xff1a; 计算机网络——理论知识总结&#xff08;上&#xff09; 四.网络层 1.功能&#xff1a;向上提供简单灵活的、无连接的、尽最大努力交付的数据报服务——所传送的分组可能出错、丢失、重复、失序或者超时&#xff0c;这就使得网络中的路由器比较简单&#…

[support2022@cock.li].faust、[tsai.shen@mailfence.com].faust勒索病毒数据怎么处理|数据解密恢复

引言&#xff1a; 威胁网络安全的恶意软件不断涌现&#xff0c;而[support2022cock.li].faust勒索病毒则是其中的一员。这个网络黑暗角落的新星&#xff0c;以其数据绑架的方式&#xff0c;一度成为数据安全的威胁焦点。本文将探究[support2022cock.li].faust勒索病毒的运作方…

Python自动处理pptx:新建、另存、添加幻灯片、添加标题、插入文本图片图形、提取文本

Python-pptx库是一个用于创建、更新和读取Microsoft PowerPoint .pptx 文件的Python库。它允许我们使用Python脚本自动化PowerPoint文件的创建、更新和读取操作&#xff0c;是一个非常方便自动化处理PPTX的工具。 安装 pip install python-pptx创建 from pptx import Prese…

常用linux命令 linux_cmd_sheet

查看文件大小 ls -al 显示每个文件的kb大小 查看系统日志 dmesg -T | tail 在 top 命令中&#xff0c;RES 和 VIRT&#xff08;或者 total-vm&#xff09;是用来表示进程内存使用的两个不同指标&#xff0c;它们之间有以下区别&#xff1a; RES&#xff08;Resident Set Size…

FoneDog iOS Unlocker(ios解锁工具) 适用macos电脑

FoneDog iOS Unlocker是一款专业的iOS设备解锁工具&#xff0c;旨在帮助用户解决iOS设备上的解锁问题。该软件支持解锁各种锁定类型&#xff0c;如数字密码锁、手势密码锁、Touch ID和Face ID等&#xff0c;可以解除iPhone、iPad和iPod Touch等设备的锁定状态。FoneDog iOS Unl…

react项目实现文件预览,比如PDF、txt、word、Excel、ppt等常见文件(腾讯云cos)

使用腾讯云文档预览&#xff0c;需要开通文档预览功能&#xff0c;该功能需要收费的。 使用限制 如果需要图片预览、视频或音频可以使用获取下载链接。 页面代码 <button onClick() > {handleClick(myself/文档.xlsx)}>预览</button><div style{{ height:…

C语言文件操作(详解)

&#x1f493;博客主页&#xff1a;江池俊的博客⏩收录专栏&#xff1a;C语言进阶之路&#x1f449;专栏推荐&#xff1a;✅C语言初阶之路 ✅数据结构探索✅C语言刷题专栏&#x1f4bb;代码仓库&#xff1a;江池俊的代码仓库&#x1f389;欢迎大家点赞&#x1f44d;评论&#x…

c++编译使用log4cplus

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、log4cplus是什么&#xff1f;二、使用步骤1.下载源代码2.开始配置1.配置介绍2.开始编译 3.cmake引用4.示例 总结 前言 C很强大&#xff0c;但是仍然有很多…

AIR101 LuatOS LVGL 显示多个标签例程

屏幕资料 AIR101与屏幕连接 PC端仿真环境合宙官方PC端版本环境搭建教程 PC电脑仿真 -- sys库是标配 _G.sys require("sys") sys.taskInit(function()local cnt0lvgl.init(480,320)--lvgl初始化local cont lvgl.cont_create(nil, nil);-- lvgl.cont_set_fit(cont, …

mac安装jdk

1、下载jdk&#xff08;我的电脑要下载arm版&#xff0c;截图不对&#xff09; Java Downloads | Oraclehttps://www.oracle.com/java/technologies/downloads/#jdk17-mac 2、双击安装

docker部署prometheus+grafana服务器监控(二) - 安装数据收集器 node-exporter

在目标服务器安装数据收集器 node-exporter 1. 安装数据收集器 node-exporter wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gztar xvf node_exporter-1.6.1.linux-amd64.tar.gzmv node_exporter-1.6.1…

使用vue3 搭建一个H5手机端访问的项目

首先说明&#xff0c;我本地之前运行过vue的项目&#xff0c;所以具有一些基础的运行环境&#xff0c;这里直接按步骤讲我项目框架搭建的过程。 这个不建议使用驼峰&#xff0c;按规范单词中间加横杠就可以。一般会出现选择项&#xff0c;按方向键选择&#xff0c;我这边选择了…

Linux音频-基本概念

文章目录 机器声音的采集原理机器声音的播放原理音频相关基本概念计算机采集音频的模型Linux系统音频框架Linux音频框架的三类角色 Linux音频框架参考文章&#xff1a;Linux音频框架 机器声音的采集原理 声音是一种连续的信号&#xff0c;故其是一种模拟量。 录音设备可以捕获…