运维 | 使用 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.mzph.cn/news/121748.shtml

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

相关文章

第2篇 机器学习基础 —(2)分类和回归

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。机器学习中的分类和回归都是监督学习的问题。分类问题的目标是将输入数据分为不同的类别&#xff0c;而回归问题的目标是预测一个连续的数值。分类问题输出的是物体所属的类别&#xff0c;而回归问题输出的是数值。本节课就…

【Matlab2016】Matlab中文版的下载、安装、激活(不建议安装过高版本!!)

这里写目录标题 首先双击R2016_win64.iso加载镜像文件双击setup.exe开始安装选择使用文件密钥安装填入密钥修改安装路径并记住此路径建议全部勾选等待安装完成 激活复制补丁到matlab路径下 创建快捷方式进入bin目录&#xff0c;找到matlab.exe 安装包 首先双击R2016_win64.iso加…

网络搭建和运维的基础题目

服务部分&#xff08;linux&#xff09; 实操部分 1.在任意文件夹下面创建形如 A/B/C/D 格式的文件夹系列。 [rootlocalhost ~]# mkdir -p A/B/C/D 2.在创建好的文件夹下面&#xff0c;A/B/C/D &#xff0c;里面创建文本文件 mkdir.txt [rootlocalhost ~]# cd A/B/C/D [r…

[17]JAVAEE-HTTP协议

目录 一、什么是HTTP协议 什么时候会用到HTTP协议&#xff1f; HTTP协议的工作流程 二、HTTP的报文格式 抓包 HTTP请求报文格式 1.首行 2.header 常见键值对&#xff1a; 3.空行 4.正文&#xff08;body&#xff09;&#xff08;有的时候可以没有&#xff09; HTTP…

Python爬虫防止被封的方法:动态代理ip

目录 前言 一、为什么需要使用动态IP代理 1.网站反爬虫机制 2.突破本地IP限制 3.获取更多数据 二、Python爬虫动态IP代理的实现方法 1.使用第三方库 2.使用爬虫框架 三、预防被封的方法 1.代理池管理 2.请求间隔设置 3.使用多个代理 总结 前言 在进行网站爬取时&…

网络基础-3

路由开销 一条路由的开销时指到达这条路由的目的地/掩码需要付出的带价值。同一种路由协议发现有多条路由可以到达同一目的地/掩码时&#xff0c;将优选开销最小的路由&#xff0c;即只把开销最小的路由加入进本协议的路由表中。 路由协议 内部网关协议&#xff08;IGP&…

网络协议--TFTP:简单文件传送协议

15.1 引言 TFTP(Trivial File Transfer Protocol)即简单文件传送协议&#xff0c;最初打算用于引导无盘系统&#xff08;通常是工作站或X终端&#xff09;。和将在第27章介绍的使用TCP的文件传送协议&#xff08;FTP&#xff09;不同&#xff0c;为了保持简单和短小&#xff0…

C++STL----list的模拟实现

文章目录 list模拟实现的大致框架节点类的模拟实现迭代器类的模拟实现迭代器类存在的意义迭代器类的模板参数说明运算符的重载--运算符的重载&#xff01;与运算符的重载*运算符的重载->运算符的重载 list的模拟实现默认成员函数迭代器相关函数元素修改相关函数front和backi…

莫名其妙el-table不显示问题

完全复制element-ui中table代码&#xff0c;发现表格仍然不显示&#xff0c;看别人都说让降低版本&#xff0c;可我不想降低啊&#xff0c;不然其他组件有可能用不了&#xff0c;后来发现可以通过配置vite.config.js alias: {: path.resolve(__dirname, src),vue: vue/dist/vue…

Python实现双目标定、畸变矫正、立体矫正

一&#xff0c;双目标定、畸变矫正、立体矫正的作用 双目目标定&#xff1a; 3D重建和测距&#xff1a;通过双目目标定&#xff0c;您可以确定两个摄像头之间的相对位置和朝向&#xff0c;从而能够根据视差信息计算物体的深度&#xff0c;进行三维重建和测距。姿态估计&#xf…

CVE-2022-22963 Spring Cloud Function SpEL命令注入

一、简介 Spring Cloud Function 是基于 Spring Boot的函数计算框架。该项目致力于促进函数为主的开发单元&#xff0c;它抽象出所有传输细节和基础架构&#xff0c;并提供一个通用的模型&#xff0c;用于在各种平台上部署基于函数的软件。在Spring Cloud Function相关版本&am…

京东平台数据分析:2023年9月京东空气净化器行业品牌销售排行榜

鲸参谋监测的京东平台9月份空气净化器市场销售数据已出炉&#xff01; 9月份&#xff0c;空气净化器的销售同比上年增长。根据鲸参谋平台的数据显示&#xff0c;今年9月&#xff0c;京东平台空气净化器的销量将近15万&#xff0c;同比增长约1%&#xff1b;销售额将近2亿元&…

Mac版好用的Git客户端 Fork 免激活

Fork是一款强大的Git客户端软件&#xff0c;在Mac和Windows操作系统上都可以使用。汇集了众多先进的功能和工具&#xff0c;可以帮助用户更方便地管理和控制Git仓库。 Fork的界面简洁直观&#xff0c;易于使用。它提供了许多高级的Git功能&#xff0c;如分支管理、合并、提交、…

NTRU 加密方案

参考文献&#xff1a; [Rivest97] Rivest R L. All-or-nothing encryption and the package transform[C]//Fast Software Encryption: 4th International Workshop, FSE’97 Haifa, Israel, January 20–22 1997 Proceedings 4. Springer Berlin Heidelberg, 1997: 210-218.[…

每日一题 2558. 从数量最多的堆取走礼物(简单,heapq)

怎么这么多天都是简单题&#xff0c;不多说了 class Solution:def pickGifts(self, gifts: List[int], k: int) -> int:gifts [-gift for gift in gifts]heapify(gifts)for i in range(k):heappush(gifts, -int(sqrt(-heappop(gifts))))return -sum(gifts)

多线程---线程安全问题及解决

文章目录 一个线程不安全的案例造成线程不安全的原因抢占式执行多个线程修改同一个变量修改操作不是原子的内存可见性问题指令重排序问题 如何让线程变得安全&#xff1f;加锁synchronized volatile 一个线程不安全的案例 题目&#xff1a;有较短时间让变量count从0加到10_000…

行业追踪,2023-10-26

自动复盘 2023-10-26 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

分享一波操作系统、谢希仁版本计算机网络学习笔记【思维导图】

操作系统复习笔记 - 幕布第一章引论第二章处理器管理进程同步与通信https://www.mubu.com/doc/58qrnf20ndg 大纲 - 幕布物理层数据链路层网络层https://www.mubu.com/doc/1eo9_8TyUdg计算机网络-语雀https://www.yuque.com/yuqueyonghu6nc56e/dgg1dl/wx34gx72xpgmt598?singleD…

HackTheBox-Starting Point--Tier 1---Crocodile

文章目录 一 题目二 实验过程 一 题目 Tags Web、Network、Custom Applications、Protocols、Apache、FTP、Reconnaissance、Web Site Structure Discovery、Clear Text Credentials、Anonymous/Guest Access译文&#xff1a;Web、网络、定制应用程序、协议、Apache、FTP、侦…

华为eNSP配置专题-策略路由的配置

文章目录 华为eNSP配置专题-策略路由的配置0、概要介绍1、前置环境1.1、宿主机1.2、eNSP模拟器 2、基本环境搭建2.1、终端构成和连接2.2、终端的基本配置 3、配置接入交换机上的VLAN4、配置核心交换机为网关和DHCP服务器5、配置核心交换机和出口路由器互通6、配置PC和出口路由器…