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

在centOS系统中使用docker部署Jenkins

1. 安装docker

1.1 下载Docker依赖组件

yum -y install yum-utils device-mapper-persistent-data lvm2

1.2 设置下载Docker的镜像源为阿里云 

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

1.3 安装Docker服务

yum -y install docker-ce

1.4 安装成功后,启动Docker并设置开机自启

# 启动Docker服务
systemctl start docker
# 设置开机自动启动
systemctl enable docker

1.5 测试安装成功

docker version

2. Docker-Compose安装

  • 下载Docker/Compose:https://github.com/docker/compose

  • 将下载好的 docker-compose-Linux-x86_64 文件移动到Linux操作系统:……

  • 设置docker-compose-Linux-x86_64文件权限,并移动到$PATH目录中

# 设置文件权限
chmod a+x docker-compose-linux-x86_64
# 移动到/usr/bin目录下,并重命名为docker-compose
mv docker-compose-linux-x86_64 /usr/bin/docker-compose

测试安装成功

docker-compose version

3. Jenkins安装

3.1 拉取Jenkins镜像

#拉取Jenkins镜像
docker pull jenkins/jenkins#创建目录
mkdir -p /usr/local/docker/jenkins
#进入目录
cd /usr/local/docker/jenkins

3.2 编写docker-compose.yml

version: "3.1"
services:jenkins:image: jenkins/jenkinscontainer_name: jenkinsports:- 8080:8080- 50000:50000volumes:- ./data/:/var/jenkins_home/

3.3 运行docker-compose.yml

#在docker-compose.yml所在的文件夹下进行启动
docker-compose up -d

3.4 查看启动日志

docker logs -f jenkins

首次启动会因为数据卷data目录没有权限导致启动失败,设置data目录写权限

docker-compose.yml所在的文件夹下会有一个data文件

chmod -R a+w data/

重新启动

docker-compose restart

再次查看日志

docker logs -f jenkins

正常启动,里面还会有密码

ip:8080访问Jenkins页面,第一次要输入上面在日志中看到的密码

3.5 修改为国内镜像站

重新启动Jenkins容器后,由于Jenkins需要下载大量内容,但是由于默认下载地址下载速度较慢,需要重新设置下载地址为国内镜像站

# 修改数据卷中的hudson.model.UpdateCenter.xml文件
<?xml version='1.1' encoding='UTF-8'?>
<sites><site><id>default</id><url>https://updates.jenkins.io/update-center.json</url></site>
</sites>
# 将下载地址替换为http://mirror.esuni.jp/jenkins/updates/update-center.json
<?xml version='1.1' encoding='UTF-8'?>
<sites><site><id>default</id><url>http://mirror.esuni.jp/jenkins/updates/update-center.json</url></site>
</sites>
# 清华大学的插件源也可以https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

再次重启Jenkins容器,访问Jenkins(需要稍微等会)

3.6 一些插件说明

查看密码登录Jenkins,并登录下载插件

docker exec -it jenkins cat /var/jenkins_home/secrets/initialAdminPassword

输入密码后,点击选择插件来按照,安装我们自己需要的插件

查看插件里有没有这些插件,换镜像源,下载应该就没有问题了,可以下载插件的

Git Parameter

Publish Over SSH

installed plugins 里面如果有以上插件,就可以从git拉取代码了

3.7 jdk

服务器上需要安装jdk和maven来编译打包代码

jdk自行下载,安装步骤可参考部署服务-1.安装jdk-CSDN博客

3.8 maven

maven 下载地址 Maven – Download Apache Maven

wget https://dlcdn.apache.org/maven/maven-3/3.9.8/binaries/apache-maven-3.9.8-bin.tar.gz

tar -zxvf apache-maven-3.9.8-bin.tar.gz -C /usr/local

修改maven配置

国内的记得修改镜像地址,比如修改为阿里云的镜像地址,自行搜索吧

按照前面的步骤,data目录的位置位于/usr/local/docker/jenkins/data,将jdk和maven的文件夹移入到此目录

然后去Jenkins页面配置jdk和maven

写容器内的路径,写错了会有提示的,修改为jdk目录就好了

保存即可

3.9 配置ssh链接服务器

可以参考Jenkins ssh server 使用秘钥链接_jenkins 添加密钥-CSDN博客,或者其他方式都可,链接上就行

相关文章:

在centOS系统中使用docker部署Jenkins

1. 安装docker 1.1 下载Docker依赖组件 yum -y install yum-utils device-mapper-persistent-data lvm2 1.2 设置下载Docker的镜像源为阿里云 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 1.3 安装Docker服务 yum …...

Qt 将生成的exe文件自动复制到其它目录下

QT pro中加入文件拷贝方法_qt pro复制粘贴-CSDN博客 目标&#xff1a; 例如&#xff1a;在release模式下&#xff0c;exe文件生成于&#xff1a; "G:\test\build\release\shakeSensor.exe" 此时&#xff0c;我希望在生成该exe文件时&#xff0c; "G:\test\…...

openwrt下,用iptable转发端口访问远程的SMB服务

首先初步学习一下iptales的命令 iptales指令的详细教程&#xff1a;https://blog.csdn.net/weixin_44390164/article/details/120500075 实践一、转发地址与端口 外网远程服务上开放了SMB服务&#xff0c;端口号自定义的为44513&#xff0c;WINDOWS不能直接访问&#xff0c;…...

JVM类加载中的双亲委派机制

【1】什么是双亲委派 Java虚拟机对class文件采用的是按需加载的方式&#xff0c;也就是说当需要使用该类时才会将它的class文件加载到内存生成class对象。而且加载某个类的class文件时&#xff0c;Java虚拟机采用的是双亲委派模式&#xff0c;即把请求交由父类处理&#xff0c…...

【OpenCV C++20 学习笔记】范围阈值操作

范围阈值操作 原理HSV颜色空间RGB与HSV颜色空间之间的转换 代码实现颜色空间的转换范围阈值操作 原理 HSV颜色空间 HSV(色相hue, 饱和度sarturation, 色明度value)颜色空间与RGB颜色空间相似。hue色相通道代表颜色类型&#xff1b;saturation饱和度通道代表颜色的饱和度&…...

【Material-UI】Checkbox组件:Indeterminate状态详解

文章目录 一、什么是Indeterminate状态&#xff1f;二、Indeterminate状态的实现1. 基本用法示例2. 代码解析3. Indeterminate状态的应用场景 三、Indeterminate状态的UI与可访问性1. 无障碍设计2. 用户体验优化 四、Indeterminate状态的最佳实践1. 状态同步2. 优化性能3. 提供…...

一文了解K8S(Kubernates)

一、K8S 1. 概述 Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊…...

三星、小米和 OPPO设备实验室将采用Android设备流技术

早在 5 月份的年度开发者大会上&#xff0c;Google就发布了 Android 设备流测试版。开发人员可以在Google数据中心的真实物理设备上更轻松、更互动地测试自己的应用程序&#xff0c;这些设备会直接串流到 Android Studio。今天&#xff0c;Google宣布与三星、小米和 OPPO 合作扩…...

华为OD-D卷万能字符单词拼写

有一个字符串数组words和一个字符串chars。 假如可以用chars中的字母拼写出words中的某个“单词”&#xff08;字符串&#xff09;&#xff0c;那么我们就认为你掌握了这个单词。 words的字符仅由 a-z 英文小写字母组成。 例如: abc chars 由 a-z 英文小写字母和 “?”组成。其…...

顶象文字点选模型识别

注意&#xff0c;本文只提供学习的思路&#xff0c;严禁违反法律以及破坏信息系统等行为&#xff0c;本文只提供思路 如有侵犯&#xff0c;请联系作者下架 文字点选如何训练&#xff0c;之前的文章说了很多遍了&#xff0c;这里只放现成的模型供查看&#xff0c;有需要成品联系…...

C#如何将自己封装的nuget包引入到项目中

问题 自己封装好了一个nuget包&#xff0c;但是不想上传到外网&#xff0c;想局域网使用&#xff0c;有两种方案 搭建私有nuget仓库放到离线文件夹中直接使用 第一种方式请请参考proget安装 下面主要是第二种方式 准备 新建类库项目 using System;namespace ClassLibrary…...

数据结构(学习)2024.8.8(栈,队列)

今天学习的是线性表里面的栈和队列 链表的相关知识可以查看http://t.csdnimg.cn/NX464 顺序表的相关知识可以查看http://t.csdnimg.cn/5IMAZ 目录 栈 栈的定义 栈的特点 顺序栈 结构体 顺序栈的相关操作案例 链式栈 结构体 链式栈的相关操作案例 总结 队列 队列…...

服务端开发常用知识(持续更新中)

Java方面 1 基础篇 1.1 网络基础 tcp三次握手和四次挥手-CSDN博客 tcp和udp区别&#xff0c;tcp拥塞控制算法和粘包问题-CSDN博客 http的发展历史&#xff0c;各版本的差异点&#xff0c;以及和https的区别-CSDN博客 2 jvm篇 3 多线程篇 4 mysql篇 5 redis篇 6 kafk…...

MySQL入门学习-运维与架构.复制过滤器

MySQL 复制过滤器是一种用于过滤复制数据的机制。它可以根据特定的规则&#xff0c;选择要复制的数据库、表或列&#xff0c;从而减少复制的数据量&#xff0c;提高复制性能。 一、以下是一些常见的 MySQL 复制过滤器&#xff1a; 1. 基于二进制日志的过滤器&#xff1a; 通过…...

【深度学习】生成领域里,Normalizing Flow、GAN、VAE、Diffusion Models的区别是什么?

文章目录 1. Normalizing Flow2. GAN (Generative Adversarial Networks)3. VAE (Variational Autoencoders)4. Diffusion Models总结1. Normalizing Flow公式代码示例2. GAN (Generative Adversarial Networks)公式代码示例3. VAE (Variational Autoencoders)公式代码示例4. D…...

Qt 串口通信(C++)

1. 基本概念 串口通信&#xff08;Serial Communications&#xff09;的概念非常简单&#xff0c;串口按位&#xff08;bit&#xff09;发送和接收字节。尽管比按字节&#xff08;byte&#xff09;的并行通信慢&#xff0c;但是串口可以在使用一根线发送数据的同时用另一根线接…...

聊聊AUTOSAR: 基于DaVinci的SecOC开发与配置

一、什么是SecOC 当前车载网络通讯环境越来越复杂&#xff0c;未采取任何安全保护的报文&#xff0c;一旦被伪造或者篡改&#xff0c;将非常危险。为了提升信息的安全性&#xff0c;AUTOSAR标准中引进了SecOC&#xff0c;加入了通讯认证机制&#xff0c;能够有效的辨别出信息是…...

.net6.0 重启控制台 命令

在.NET 6.0中&#xff0c;如果你想要创建一个命令行应用程序来重启当前运行的控制台&#xff0c;你可以使用System.Diagnostics命名空间下的Process类来启动一个新的进程&#xff0c;并结束当前进程。 以下是一个简单的示例代码&#xff0c;展示了如何实现重启控制台的功能&am…...

LVS 调度器 nat和DR模式

lvs-nat 修改请求报文的目标IP,多目标IP的DNAT 配置网络 LVS主机 注意网卡的顺序 &#xff08;nat和主机模式&#xff09; [rootlvs ~]# cat /etc/NetworkManager/system-connections/ens160.nmconnection [connection] idens160 typeethernet interface-nameens160 ​ [ip…...

MTK Android12 SystemUI 手势导航 隐藏导航栏底部布局

问题:android12 平台手势导航情况下,app页面未设置全屏情况下,底部导航栏会有一个高度的颜色,底部导航会有一个手势导航提示条 需求:去掉手势导航情况下底部的导航栏和手势提示条 文章目录 相关资源修改问题描述解决方案代码跟踪中间提醒小方块代码查找底部手势导航条跟踪…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 &#xff08;一&#xff09;实时滤波与参数调整 基础滤波操作 60Hz 工频滤波&#xff1a;勾选界面右侧 “60Hz” 复选框&#xff0c;可有效抑制电网干扰&#xff08;适用于北美地区&#xff0c;欧洲用户可调整为 50Hz&#xff09;。 平滑处理&…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

Linux入门(十五)安装java安装tomcat安装dotnet安装mysql

安装java yum install java-17-openjdk-devel查找安装地址 update-alternatives --config java设置环境变量 vi /etc/profile #在文档后面追加 JAVA_HOME"通过查找安装地址命令显示的路径" #注意一定要加$PATH不然路径就只剩下新加的路径了&#xff0c;系统很多命…...

codeforces C. Cool Partition

目录 题目简述&#xff1a; 思路&#xff1a; 总代码&#xff1a; https://codeforces.com/contest/2117/problem/C 题目简述&#xff1a; 给定一个整数数组&#xff0c;现要求你对数组进行分割&#xff0c;但需满足条件&#xff1a;前一个子数组中的值必须在后一个子数组中…...

AIGC 基础篇 Python基础 02

1.bool类型 书接上回&#xff0c;我们上次最后讲了三大数据类型&#xff0c;除了这三个之外&#xff0c;Python也有bool类型&#xff0c;也就是True和False。 a 2 print(a1) print(a2) 像这里&#xff0c;输出的内容第一个是False&#xff0c;因为a的值为2&#xff0c;而第…...