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

别再为 Jenkins 安装烦恼,Docker 帮你轻松解决

前言

大家好,又见面了,我是沐风晓月,本文收录与云原生相关的专栏,以下是我的简介:

🏠个人主页:我是沐风晓月
🧑个人简介:大家好,我是沐风晓月,双一流院校计算机专业,阿里云社区专家博主😉😉
💕 座右铭: 先努力成长自己,再帮助更多的人 ,一起加油进步🍺🍺🍺
💕欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信😘

一. 获取Jenkins镜像

1. 搜索jenkins镜像

[root@mufenggrow ~]# docker search jenkins
NAME                           DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
jenkins                        DEPRECATED; use "jenkins/jenkins:lts" instead   5606      [OK]       
jenkins/jenkins                The leading open source automation server       3393                 
jenkins/jnlp-slave             a Jenkins agent which can connect to Jenkins…   155                  [OK]
jenkins/inbound-agent                                                          87                   
bitnami/jenkins                Bitnami Docker Image for Jenkins                59                   [OK]
jenkins/agent                                                                  51                   
jenkins/slave                  base image for a Jenkins Agent, which includ…   49                   [OK]
jenkins/ssh-slave              A Jenkins slave using SSH to establish conne…   39                   [OK]

命令中出现的参数解释:

  • NAME - Docker 镜像名称,例如 “jenkins”。

  • DESCRIPTION - 镜像的描述,包括一些关键词,以帮助用户更好地了解镜像的内容和用途。

  • STARS - 表示该镜像被多少 Docker 用户收藏,收藏数越多通常代表该镜像受欢迎程度越高。

  • OFFICIAL - 指示该镜像是否为官方 Docker 镜像。如果是官方镜像,则该字段为 “OK”,否则为空。

  • AUTOMATED - 指示该镜像是否为自动构建镜像。如果是,则该字段为 “OK”,否则为空。

  • DOCKER STARS - 该镜像在 Docker Hub 上的星级评分,从 0 到 5 星不等。

  • UPDATED - 显示镜像的最后更新日期和时间。

  • OFFICIAL IMAGE - 表示该镜像是否为 Docker 官方支持的镜像。如果是,则该字段为 “OK”,否则为空。

  • ARCHITECTURE - 表示该镜像支持的 CPU 架构,例如 “amd64”、“arm64” 等。

  • VOTES - 表示 Docker 用户投票支持该镜像的数量。

这里需要注意: 不是每个镜像都选第一个,要看描述,也就是DESCRIPTION字段
比如: DEPRECATED 音标:[ˌdiːprɪˈkeɪtɪd] 表示"被弃用"、"不建议使用"的意思, 这时候就不要选,我们这里直接选第二个。

2. 拉取镜像

[root@mufenggrow ~]# docker search jenkins --limit 3
NAME                 DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
jenkins              DEPRECATED; use "jenkins/jenkins:lts" instead   5606      [OK]       
jenkins/jenkins      The leading open source automation server       3393                 
jenkins/jnlp-slave   a Jenkins agent which can connect to Jenkins…   155                  [OK]
[root@mufenggrow ~]# docker pull jenkins/jenkins

拉取镜像如下图:

在这里插入图片描述

该命令直接拉取的最新版本(latest)的镜像,我们还可以选择下面几个推荐的版本:

  • jenkins/jenkins:lts-jdk11:基于 JDK11 的最新 LTS 版本;
  • jenkins/jenkins:alpine:Alpine 版本;
  • jenkins/jenkins:latest-jdk8:基于 JDK8 的最新版本

更多版本,从docker hub官网查看: https://registry.hub.docker.com/r/jenkins/jenkins/tags

如下图:
在这里插入图片描述

运行Jenkins容器

1. 创建Jenkins挂载目录

Docker 为了实现容器和主机之间的数据共享,提供了挂载目录(Mount)的机制。通过在容器启动时将主机的目录或文件挂载到容器的文件系统中,可以让容器和主机之间共享数据。

所以这里我们先创建挂载目录:

mkdir -p /usr/local/jenkins
chmod 777 /usr/local/jenkins

2. 创建并启动Jenkins容器

docker run -d \-p 8080:8080 \-p 50000:50000 \-v /usr/local/jenkins:/var/jenkins_home \-v /etc/localtime:/etc/localtime \--restart=always \--name=jenkins \jenkins/jenkins

命令解析:

  • -d:以后台方式运行容器。

  • -p 8080:8080:将主机的8080 端口映射到容器的 8080 端口,使得在主机上可以通过 http://localhost:8080访问 Jenkins 的 Web 界面。

  • -p 50000:50000:将主机的 50000 端口映射到容器的 50000 端口,用于 Jenkins 的远程构建。

  • -v /usr/local/jenkins:/var/jenkins_home:将主机上的 /usr/local/jenkins 目录挂载到容器内的 /var/jenkins_home 目录,用于持久化 Jenkins 数据。

  • -v /etc/localtime:/etc/localtime:将主机的本地时间设置挂载到容器中,使得容器中的时间与主机的时间同步。

  • -restart=always:设置容器总是自动重启,即使容器意外终止或 Docker 守护进程重启。

  • –name=jenkins:为容器命名为 jenkins。

  • jenkins/jenkins:表示要运行的 Docker 镜像名称和版本,这里是 Jenkins 官方提供的官方镜像。

3. 查看是否执行成功

使用docker ps 或者docker ps -l 来查看是否启动成功

[root@mufenggrow ~]# docker ps
CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS         PORTS                                                                                      NAMES
0102a8a377b2   jenkins/jenkins   "/sbin/tini -- /usr/…"   16 minutes ago   Up 3 seconds   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp   jenkins

在这里插入图片描述

三. 访问Jenkins并安装

1. 浏览器输入ip:8080访问

访问的方式是: IP+容器的端口,我这里是192.168.1.56:8080

2. 查找管理员密码

在这里插入图片描述
可以看到这里让输入密码,密码在/var/jenkins_home/secrets/initialAdminPassword, 我们可以进容器内部去查看,也可以在我们挂载的目录下查看:

[root@mufenggrow ~]# cat /usr/local/jenkins/secrets/initialAdminPassword 
a2b3ca514a01491c947095d9a7b3bc95
[root@mufenggrow ~]# 

找到密码后输入并点击下一步:
在这里插入图片描述

3. 选择推荐的插件进行安装

在这里插入图片描述

这里会自动安装,可以不用操作,如果觉得速度比较慢,也可以设置jenkins的国内镜像加速

在这里插入图片描述

4. 创建管理员账户

安装完成后,会进入管理员创建页面,可以选择使用admin账户继续,也可以创建一个新的管理员用户(建议创建新的管理员用户,方便管理账号密码):

在这里插入图片描述

5. 登录成功

通过上面的步骤操作之后,可以看到已经登录成功了。
在这里插入图片描述
在这里插入图片描述

总结

💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!
💕 博客主页:mufeng.blog.csdn.net
💕 本文由沐风晓月原创,首发于CSDN博客
💕 曾国藩说: 一书未完,不读其他

相关文章:

别再为 Jenkins 安装烦恼,Docker 帮你轻松解决

前言 大家好,又见面了,我是沐风晓月,本文收录与云原生相关的专栏,以下是我的简介: 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,双…...

汇编语言程序设计(一)

前言 在学习汇编语言之前,我们应该要知道汇编语言他是一门怎么样的语言。汇编语言是直接工作在硬件上的一门编程语言,学习汇编语言之前最好先了解一下计算机硬件系统的结构和工作原理。学习汇编语言的重点是学习如何利用硬件系统的编程结构和指令集进而…...

【uni-app教程】四、UniAPP 路由配置及页面跳转

四、UniAPP 路由配置及页面跳转 (1) 路由配置 uni-app页面路由为框架统一管理,开发者需要在pages.json里配置每个路由页面的路径及页面样式。类似小程序在 app.json 中配置页面路由一样。所以 uni-app 的路由用法与 Vue Router 不同,如仍希望采用 Vue …...

ROS从入门到精通系列(二十八)-- ROS控制器图形化界面开发

ROS (Robot Operating System, 机器人操作系统) 作为机器人软件中的通信及控制中间件,提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、函数库、可视化工具、消息传递和软件包管理等诸多功能。ROS遵循BSD开源许可协议。 随着机器人智…...

Submodule命令:android如何将自己项目中的某个Module作为gitlab中第三方公共库

一、创建远程公共库 1、Android Studio创建本地仓库 创建一个新的module 在新建module中添加代码(此处示例代码) 右击新建的module,打开新建module的命令行界面, 因为我们只上传这个module的代码,而不是整个项目的代码 命令行中输入以下命令…...

MySQL索引事务

1.索引1.1概念索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结果实现。(这里只用通俗的语言和图片进行介绍)1.2作用数据库中的表…...

ISO27001信息安全管理体系认证

​ISO信息安全管理体系认证 一、什么是ISO信息安全管理体系认证? ISO是信息安全管理体系认证,是由国际标准化组织(ISO)采纳英国标准协会BS-2标准后实施的管理体系,成为了“信息安全管理”的国际通用语言,企…...

Linux应用GUI开发C++ 之gtkmm4(1)

目录概述GTKgtkmm安装gtkmm4hello,worldcodelite配置代码解释概述 GTK GTK是一个小部件工具包。GTK创建的每个用户界面都由小部件组成。这是在C语言中使用GObject实现的,GObject是一个面向对象的C语言框架。窗口小部件是主容器。然后通过向窗口中添加按钮、下拉菜…...

选课系统的设计与实现

技术:Java等摘要:目前国内各高校的规模越来越大,进而造成教师教学管理等工作量日趋加大。然而,现代教育的信息化、网络化已经成为教育发展的一个重要方向,同时也为解决高校教学管理效率低下的现状,使管理突…...

关于安卓的一些残缺笔记

安卓笔记Android应用项目的开发过程Android的调试Android项目文档结构Intent的显式/隐式调用Activity的生命周期1个Activity界面涉及到生命周期的情况2个Activity界面涉及到生命周期的情况Android布局的理论讲解Activity界面布局ContentProvider是如何实现数据共享Android整体架…...

MySQL 中的锁有哪些类型,MySQL 中加锁的原则

锁的类型MySQL 找那个根据加锁的范围,大致可以分成全局锁,表级锁和行级锁。全局锁全局锁,就是对整个数据库加锁。加锁flush tables with read lock解锁unlock tables全局锁会让整个库处于只读状态,之后所有的更新操作都会被阻塞&a…...

Winform中操作Sqlite数据增删改查、程序启动时执行创建表初始化操作

场景 Sqlite数据库 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。 它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 就像其他数据库,SQLite 引擎不…...

2023最新版本RabbitMQ下载安装教程

一、RabbitMQ简介 RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现。主要用于在进程、应用程序和服务器之间交换数据,可以通过插件支持进行扩展,支持许多协议,并提供高性能、可靠性、集群和高可用队列。 AMQP :Advanced Me…...

如何使用码匠连接 Elasticsearch

目录 在码匠中集成 Elasticsearch 在码匠中使用 Elasticsearch 关于码匠 Elasticsearch 是一个开源的分布式搜索和分析引擎,常用于处理大规模数据集的搜索、实时数据分析和数据挖掘任务。它支持多种数据源,包括关系型数据库(如 MySQL、Pos…...

jmeter学习笔记二(jmeter函数与后置处理器)

Jmeter重要的函数 ${__counter(,)} 计数器 ​ ${__counter(TRUE,)} 默认加1; TRUE,每个用户有自己的计数器;FALSE,使用全局计数器 ​ 计数器元件,可以设置起始值,间隔值,最大值。运行结果超过最大值时&a…...

【独家】华为OD机试提供C语言题解 - 子序列长度

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明子序…...

Java之注解

注解1.1 注解的概念1.2 内置注解1.3 元注解1.4 自定义注解1.1 注解的概念 Annotation 是从JDK5.0 开始引入的新技术 Annotation的作用: 不是程序本身,可以对程序做出解释(这一点和注释comment没什么区别)可以被其他程序&#xff…...

【C++】string

【C修炼秘籍】string 目录 【C修炼秘籍】string 文章目录 前言 一、标准库里的string 二、string常用接口功能简介(具体使用和底层转到模拟实现) 1、string类的常见构造函数 2、string类对象的容量操作 3、string类对象的访问及遍历操作 4、 string类对象…...

JVM详解——执行引擎

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:耶瞳空间 一:执行引擎介绍 “虚拟机”是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和…...

python学习——【第二弹】

前言 上一篇文章 python学习——【第一弹】给大家介绍了python中的基本数据类型等,这篇文章接着学习python中的运算符的相关内容。 运算符 python中的运算符主要有:算术运算符,赋值运算符,比较运算符,布尔运算符以及…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

IGP(Interior Gateway Protocol,内部网关协议)

IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

视觉slam十四讲实践部分记录——ch2、ch3

ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Docker拉取MySQL后数据库连接失败的解决方案

在使用Docker部署MySQL时,拉取并启动容器后,有时可能会遇到数据库连接失败的问题。这种问题可能由多种原因导致,包括配置错误、网络设置问题、权限问题等。本文将分析可能的原因,并提供解决方案。 一、确认MySQL容器的运行状态 …...

华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)

题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...

CSS3相关知识点

CSS3相关知识点 CSS3私有前缀私有前缀私有前缀存在的意义常见浏览器的私有前缀 CSS3基本语法CSS3 新增长度单位CSS3 新增颜色设置方式CSS3 新增选择器CSS3 新增盒模型相关属性box-sizing 怪异盒模型resize调整盒子大小box-shadow 盒子阴影opacity 不透明度 CSS3 新增背景属性ba…...

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法

用神经网络读懂你的“心情”:揭秘情绪识别系统背后的AI魔法 大家好,我是Echo_Wish。最近刷短视频、看直播,有没有发现,越来越多的应用都开始“懂你”了——它们能感知你的情绪,推荐更合适的内容,甚至帮客服识别用户情绪,提升服务体验。这背后,神经网络在悄悄发力,撑起…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...