【Linux】Docker 搭建 Jenkins

news2025/1/6 19:18:34

🍁博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!

目录

  • 一、Jenkins到底是什么?
  • 二、持续集成、自动部署流程
  • 三、使用docker部署Jenkins
    • 1 安装docker服务并添加docker的镜像加速源
    • 2 拉取Jenkins镜像
    • 3 创建Jenkins挂载目录并赋予权限
    • 4 创建Jenkins容器并运行
    • 5 页面访问jenkins
      • 5.1 解锁 Jenkins
      • 5.2 自定义Jenkins---安装推荐插件
        • 5.2.1 配置镜像加速器
      • 5.3 创建管理用户
      • 5.4 实例配置
      • 5.5 开始使用
  • 四、Jenkins安装Github所需插件
  • 五【附加】 github生成Token步骤
    • 1 访问github并登录
    • 2 配置Personal Access Token

一、Jenkins到底是什么?

  Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。下面为项目持续集成和交互的流程图

在这里插入图片描述

二、持续集成、自动部署流程

在这里插入图片描述

  开发人员将代码push到gitlab中,触发jenkins的自动pull拉取代码,通过maven编译、打包,然后通过执行shell脚本使docker构建镜像并push到私服(或者阿里云)仓库,此操作完成后jenkins服务器上再执行SSH命令登录到部署服务器,docker从仓库(私服)拉取镜像,启动容器。整个操作流程完成。

三、使用docker部署Jenkins

1 安装docker服务并添加docker的镜像加速源

首先安装docker,并且添加docker的镜像加速源;添加docker的镜像源可以加速拉取镜像;

docker安装的方式可参考:linux(centos)中部署docker(步骤超全,含带一些发展史和一些概念)

更换docker的镜像源:

#切换到/etc/docker/
cd /etc/docker/

#创建daemon.json文件
touch daemon.json
#或者直接vim daemon.json
vim daemon.json

{
    "registry-mirrors":[
        "https://fdsfa43fg.mirror.aliyuncs.com"
    ]
}

#写入完成之后保存退出重新加载配置并重启docker服务
#保存退出
:wq

#重新加载配置
systemctl daemon-reload

#重启docker服务
systemctl restart docker

重启完可用docker info命令查看是否添加上

docker info

在这里插入图片描述

2 拉取Jenkins镜像

docker pull jenkins/jenkins

等待拉取即可;

在这里插入图片描述

拉取完成之后查看镜像

[root@localhost docker]# docker images

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     latest              55860ee0cd73        10 months ago       442MB

3 创建Jenkins挂载目录并赋予权限

3.1 稍后可以将docker内的目录挂载到此目录上,方便操作容器内文件夹而不需要进入容器

mkdir -p /var/jenkins_home

3.2 为挂载目录赋予权限

chmod 777 /var/jenkins_home

4 创建Jenkins容器并运行

docker run -itd --name jenkins --restart=always --network=host --privileged=true -v /var/jenkins_home/:/var/jenkins_home/ -v /etc/localtime:/etc/localtime jenkins/jenkins:latest

创建并启动一个名为Jenkins的docker容器:
-it是以交互式创建,-d是后台执行;
–name是让其自定义一个名字jenkins(自定义);
–restart是设置开机自动重启 always开机自动重启;
–network是网络模式 host是主机模式;
–privileged是加上这个参数容器内就会拥有和容器外一样的root权限了;
-v是将容器中的/var/jenkins_home挂载到本机的/var/jenkins_home目录,前者为本机地址,后者为容器地址 ;
最后jenkins/jenkins则是本次运行使用的镜像;

5 页面访问jenkins

docker ps -a 

jenkins运行中页面访问

在这里插入图片描述
ip:port

如:遇到页面访问不到的情况,可使用netstat -anput | grep port 查看端口是否被占用;

在这里插入图片描述

5.1 解锁 Jenkins

根据提示找到jenkins的密码;

在这里插入图片描述

[root@localhost secrets]# cat /var/jenkins_home/secrets/initialAdminPassword 
82112870c37694a46ab4f732dafsfa0019334ef0

将密码复制到页面上,点击继续;

5.2 自定义Jenkins—安装推荐插件

可选择使用推荐插件自定义插件;推荐使用推荐插件

在这里插入图片描述

5.2.1 配置镜像加速器

插件安装失败或速度过慢,可通过配置镜像加速解决。

#停止jenkins容器
docker stop jenkins

#进入jenkins挂载的文件中
cd /var/jenkins_home/

#编辑配置文件
vim hudson.model.UpdateCenter.xml

#将url值修改为清华大学官方镜像地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

#保存退出重启容器
:wq
docker restart jenkins

在这里插入图片描述

5.3 创建管理用户

在这里插入图片描述

5.4 实例配置

直接保存并完成即可
在这里插入图片描述

5.5 开始使用

在这里插入图片描述

四、Jenkins安装Github所需插件

需要安装几个必须的插件:CloudBees CredentialsGitHub API PluginSSH Credentials PluginGit client pluginSCM APIMailer PluginPlain Credentials PluginGIT pluginGitHub PluginPublish Over.SSHMaven Integration

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

五【附加】 github生成Token步骤

1 访问github并登录

github官网:https://github.com/

登录:

在这里插入图片描述在这里插入图片描述

2 配置Personal Access Token

在对项目有写权限的用户上获取token进入github –> setting –> Developer settings –> Personal Access Token –> Token –> Generate new token

在这里插入图片描述在这里插入图片描述在这里插入图片描述

找到tokens,新建tokens并设置读、写、执行权限

在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

相关文章

微服务框架 SpringCloud微服务架构 26 数据聚合 26.3 DSL 实现Metrics 聚合

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构26 数据聚合26.3 DSL 实现Metrics 聚合26.3.1 DSL 实现Metrics 聚合26 数据…

ADI DSP的JTAG设计规范(提供JTAG标准设计原理图)

早就想写点这方面内容了,14PIN的JTAG设计,是ADI从2000年至今一直延续下来的一个JTAG标准设计,很多兄弟在做硬件设计的时候,最常问的一个问题就是:JTAG接口定义是什么?更多的只知道抄原厂评估板的参考设计&a…

Nginx 反向代理与负载均衡

什么是Nginx Nginx 是一款高性能的 http 服务器和反向代理服务器,官方测试 nginx 能够支支撑 5 万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。 Nginx 应用场景 http 服务器:Nginx 是一个 http 服务可以独立提供…

web前端期末大作业:HTML+CSS+JavaScript绿色的盆栽花店网站响应式模板 大学生鲜花网页设计

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

嵌入式面试问题汇总

文章目录c/c1、malloc与new的区别2、C语言内存分配的方式3、struct 与 class的区别4、const常量和#define的区别5、vector与list6、各个stl的底层实现7、动态绑定与静态绑定8、多态实现的三个条件、实现的原理9、析构函数一般写成虚函数的原因10、构造函数不能是虚函数的原因11…

把握数字化时代发展机遇,供应链协同系统驱动生物医药企业提速数字化转型升级

生物医药行业是指将基因工程、细胞工程、酶工程等现代生物技术与各种形式的新药研发、生产相结合,制造市场可流通药品并规模化生产的经济实体的总和。近年来,随着国内生物医药行业的不断扩张及竞争日益激烈,如何借助数字化打造生物医药企业核…

(15)点云数据处理学习——单目深度估计获得RGBD图再重建点云

1、主要参考 (1)大佬视频 Create Your Own Point Clouds from Depth Maps - Point Cloud Processing in Open3D_哔哩哔哩_bilibili (2)重要!!!我前面的教程 (7)点云数…

配置gradle :将properties文件转换为扩展属性

配置gradle 为了便于管理项目配置信息,和自动复制应用图标到资源文件夹,为后面的一键生成app做准备。我写了一个gradle文件。 作用 项目启动的时候自动执行以下操作 在setting.gradle中引入一次后,全局可用。根目录的build.gradle和各个mo…

如何理解Spring?

Spring 是包含了众多⼯具⽅法的 IoC 容器。 那何为容器呢?容器是用来容纳某种东西的装置。比如:List/Map 是数据存储容器,Tomcat 是Web 容器等等。Spring 也是⼀个容器,是⼀个 IoC 容器。 那何为IoC 呢?IoC Inversi…

Buildroot系列开发(四)Linux工具链剖析

内容参考:百问网 文章目录1.什么是工具链2.什么是交叉编译工具链3.ABI4. Multilib工具链5.工具链与SDK的区别6.获得适合的交叉编译工具链7.sysroot8.Toolchain内部剖析9.根文件系统与sysroot10. 工具链组成11.整体构建过程12.自定义工具链1.什么是工具链 2.什么是交…

毕业设计-基于大数据动画电影推荐系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

面试题:三个线程按顺序打印 ABCABC

小伙伴们好呀,最近在重新复习,整理自己的知识库,偶然看到这道面试题:三个线程按顺序打印 ABCABC,尝试着做一下,才发现自己对线程还有好多地方不懂,蓝瘦…… 🐷 思路 很明显&#xf…

Docker可视化工具Portainer安装

一、官网介绍 官方地址:https://www.portainer.io/ 致力于为开发者做最强大的docker管理平台二、在 Linux 上使用 Docker 安装 Portainer 官方文档地址:https://docs.portainer.io/start/install/server/docker/linux 1、部署前需知 (1&a…

SautinSoft JBIG2 .Net提供了解读jb2文档的API

SautinSoft JBIG2 .Net提供了解读jb2文档的API SautinSoft的JBIG2.Net是一个独立且简单的SDK,为您提供了解读jb2文档的API。该部分将使您的软件能够使用3-4个C#行将JBIG2文件的任何网页转换为照片格式:png、Tiff、jpeg。 JBIG2.Net能给我什么 节省项目开…

PyQt中的多线程QThread示例

PyQt中的多线程一、PyQt中的多线程二、创建线程2.1 设计ui界面2.2 设计工作线程2.3 主程序设计三、运行结果示例一、PyQt中的多线程 传统的图形用户界面应用程序都只有一个执行线程,并且一次只执行一个操作。如果用户从用户界面中调用一个比较耗时的操作&#xff0…

JAVA SCRIPT设计模式--结构型--设计模式之Proxy代理模式(12)

JAVA SCRIPT设计模式是本人根据GOF的设计模式写的博客记录。使用JAVA SCRIPT语言来实现主体功能,所以不可能像C,JAVA等面向对象语言一样严谨,大部分程序都附上了JAVA SCRIPT代码,代码只是实现了设计模式的主体功能,不代…

搭建LNMP平台实现负载均衡与高可用

目录 环境要求 安装服务 搭建服务 1. nfs主机操作 2. web1主机操作 3. web2主机操作 4. php主机操作 5. mysql主机操作 6. 验证1 7. lb1主机操作 8. lb2主机操作 9. 验证2 测试1 测试2 网站故障解决 验证 环境要求 实验目标:搭建LNMP平台实现负载均衡与高可用。 拓…

web课程设计——健身俱乐部健身器材网站模板(24页)HTML+CSS+JavaScript

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

解析Vue项目每一个文件夹及文件的作用

使用vue-cli2.x脚手架为每个vue项目创建脚手架项目结构,项目结构目录中每个文件夹介绍如下: 1、build 文件夹 里面是对 webpack 开发和打包的相关设置,包括入口文件,输出文件,使用的模块等。 1.1 webpack.base.conf.j…

人大金仓 +用友:助力企业数智化转型,实现高质量发展

金兰组织联合解决方案集数字化浪潮下,联合解决方案已经成为这个时代的必然选择。如何依托各自产品的功能与特点,持续优化和完善解决方案能力,满足客户更多、更复杂的业务诉求,成为数字服务厂商的重要工作内容。为此,金…