Windows Docker 部署 Jenkins

一、简介

今天介绍一下在 Windows Docker 中部署 Jenkins 软件。在 Windows Docker 中,分为两种情况 Linux 容器和 Windows 容器。Linux 容器是通常大多数使用的方式,Windows 容器用于 CI/CD 依赖 Windows 环境的情况。

二、Linux 容器

Linux 容器内部署的 Jenkins 服务,大多数构建 CI/CD 使用这种场景,这里就不做过多介绍了。

2.1 部署 Jenkins

打开 Docker Desktop,切换到 Linux 容器,然后在 PowerShell 执行下面命令,即可部署一个 Jenkins 服务。这里安装的是 2.447 Tag 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。

docker run -d -p 8080:8080 --name jenkins-2.447 -e LANG=C.UTF-8 -v C:\ProgramDatas\Docker\Containers\jenkins-2.447:/var/jenkins_home jenkins/jenkins:2.447

-如果需要自启动,加 –restart always 参数即可。
-参数 -v C:\ProgramDatas\Docker\Containers\jenkins-2.447:/var/jenkins_home 将容器内的 /var/jenkins_home 映射到物理机的 C:\ProgramDatas\Docker\Containers\jenkins-2.447 文件夹。

在这里插入图片描述

2.2 Jenkins 目录映射

Docker 内的 Jenkins 容器,需要映射到物理机进行数据持久化,如下可以看到 Jenkins 容器内的 /var/jenkins_home 成功映射到了物理机的 C:\ProgramDatas\Docker\Containers\jenkins-2.447 目录。
在这里插入图片描述

2.3 初始化 Jenkins

浏览器内使用 8080 端口 http://localhost:8080/ 进行访问,第一次访问需要初始化会比较慢,需要两三分钟吧。看到如下 Unlock Jenkins 界面,需要输入容器内 /var/jenkins_home /secrets/initialAdminPassword 文件中的密码。因为进行了目录映射,所以找物理上的 C:\ProgramDatas\Docker\Containers\jenkins-2.447\secrets\initialAdminPassword 文件内容输入即可。
在这里插入图片描述
在这里插入图片描述
插件安装,通常选择推荐即可,自定义也可以,按需选择。
在这里插入图片描述
在这里插入图片描述
等待插件安装完成后,输入设置 admin 用户信息,根据自己的需求命名即可。
在这里插入图片描述
在这里插入图片描述
初始化到这一步,我们的 Jenkins 就安装完成了。
在这里插入图片描述

三、Windows 容器

Windows 容器内部署的 Jenkins,通常用作 CI/CD 依赖于Windows 环境的场景。比如 Microsoft 的 DotNet Framework 平台开发的程序,在使用 Jenkins 构建 CI/CD 时,依赖于 Windows 环境。

3.1 部署 Jenkins

打开 Docker Desktop 切换到 Windows 容器,然后在 PowerShell 执行下面命令,即可部署一个 Jenkins 服务。这里安装的是 windowsservercore-ltsc2019 Tag 版本,如果需要安装其他或者最新版本,可以到 Docker Hub 中进行查找。

docker run -d -p 8080:8080 --name jenkins_windowsservercore-ltsc2019 -e LANG=C.UTF-8 -v C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019:C:\ProgramData\Jenkins\JenkinsHome jenkins/jenkins:windowsservercore-ltsc2019

-因为 Windows 容器的镜像,通常情况下,基础镜都像比较大,所以第一次下载部署需要点时间,取决于网络速度。
-如果需要自启动,加 –restart always 参数即可。
-参数 -v C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019:C:\ProgramData\Jenkins\JenkinsHome 将容器内的 C:\ProgramData\Jenkins\JenkinsHome 映射到物理机的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019 文件夹。

在这里插入图片描述
如果需要进入容器内,可以执行下面两个命令,一个是进入 cmd,另一个是进入 powershell。

docker container exec -it jenkins_windowsservercore-ltsc2019 cmd
docker container exec -it jenkins_windowsservercore-ltsc2019 powershell

3.2 Jenkins 目录映射

Docker 内的 Jenkins 容器,需要映射到物理机进行数据持久化,如下可以看到容器内的 C:\ProgramData\Jenkins\JenkinsHome 成功映射到了物理机的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019 目录。
在这里插入图片描述

3.3 初始化 Jenkins

浏览器内使用 8080 端口 http://localhost:8080/ 进行访问,第一次访问初始化会比较慢,需要两三分钟吧。看到如下界面,解锁 Jenkins 需要输入容器内xxx\secrets\initialAdminPassword 文件中的密码。因为进行了目录映射,所以找物理上的 C:\ProgramDatas\Docker\Containers\jenkins_windowsservercore-ltsc2019\secrets\initialAdminPassword 文件内容输入即可。
在这里插入图片描述
在这里插入图片描述
插件安装,通常选择推荐即可,自定义也可以,按需选择。
在这里插入图片描述
在这里插入图片描述
等待插件安装完成后,输入设置 admin 用户信息,根据自己需求命名即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
初始化到这一步,我们的 Jenkins 就安装完成了。
在这里插入图片描述

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

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

相关文章

LeetCode -- 79.单词搜索

1. 问题描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水…

【前沿热点视觉算法|Sora|GPT4一键升级】一种新的图像分割方法:具有边界注意的两级解码网络

计算机视觉算法分享。问题或建议,请文章私信或者文章末尾扫码加微信留言。sora 具体介绍和使用方法:OpenAI Sora 下一代生产力:最新小白必看教程 | 解剖Sora的前世今生 | Sora核心源码目前 openai 官方还未开放 sora 灰度,不过根据…

黑马JavaWeb课程中安装vue脚手架出现的问题

1 安装node.js 要想前端工程化,必须安装node.js,前端工程化的环境。 在成功安装node.js后, 修改全局包安装路径为Node.js安装目录, 修改npm镜像源为淘宝镜像源,这里出现第一个问题,视频中给的淘宝镜像为&…

抽象类、模板方法模式

抽象类概述 在Java中abstract是抽象的意思,如果一个类中的某个方法的具体实现不能确定,就可以申明成abstract修饰的抽象方法(不能写方法体了),这个类必须用abstract修饰,被称为抽象类。 抽象方法定义&…

WSL2编译RV1126 SDK

接上一篇《WSL2部署RV1126 SDK编译环境》 1 编译配置 ./build.sh device/rockchip/rv1126_rv1109/aio-rv1126-jd4.mk 2 关闭Qt(可选) vim buildroot/configs/firefly_rv1126_rv1109_defconfig 3 启用ROS(可选) vim buildroot/conf…

链表基础知识详解(非常详细简单易懂)

概述: 链表作为 C 语言中一种基础的数据结构,在平时写程序的时候用的并不多,但在操作系统里面使用的非常多。不管是RTOS还是Linux等使用非常广泛,所以必须要搞懂链表,链表分为单向链表和双向链表,单向链表很…

Rocky Linux 安装部署 Zabbix 6.4

一、Zabbix的简介 Zabbix是一种开源的企业级监控解决方案,用于实时监测服务器、网络设备和应用程序的性能和可用性。它提供了强大的数据收集、处理和可视化功能,同时支持事件触发、报警通知和自动化任务等功能。Zabbix易于安装和配置,支持跨平…

HTTPS是什么,详解它的加密过程

目录 1.前言 2.两种加密解密方式 2.1对称加密 2.2非对称加密 3.HTTPS的加密过程 3.1针对明文的对称加密 3.2针对密钥的非对称加密 3.3证书的作用 1.前言 我们知道HTTP协议是超文本传输协议,它被广泛的应用在客户端服务器上,用来传输文字,图片,视频,js,html等.但是这种传…

【牛客】VL60 使用握手信号实现跨时钟域数据传输

题目描述 分别编写一个数据发送模块和一个数据接收模块,模块的时钟信号分别为clk_a,clk_b。两个时钟的频率不相同。数据发送模块循环发送0-7,在每个数据传输完成之后,间隔5个时钟,发送下一个数据。请在两个模块之间添加…

Harbor高可用(haproxy和keepalived)

Harbor高可用(haproxy和keepalived) 文章目录 Harbor高可用(haproxy和keepalived)1.Harbor高可用集群部署架构1.1 主机初始化1.1.1 设置网卡名和ip地址1.1.2 设置主机名1.1.3 配置镜像源1.1.4 关闭防火墙1.1.5 禁用SELinux1.1.6 设…

【力扣hot100】刷题笔记Day17

前言 今天竟然不用开组会!天大的好消息,安心刷题了 46. 全排列 - 力扣(LeetCode) 回溯(排列) class Solution:def permute(self, nums: List[int]) -> List[List[int]]:# 回溯def backtrack():if len(…

项目整合管理 -2024年高项第4版(附思维导图)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目整合管理概述二、 项目整合管理的目标三、项目整合管理的过程组1.制定项目章程2.制定项目管理计划3. 指导与管理项目工作4.管理项目知识5.监控项目工作…