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

[Jenkins] Docker 安装Jenkins及迁移流程

在这里插入图片描述

系统要求

最低推荐配置:

  • 256MB可用内存
  • 1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)

为小团队推荐的硬件配置:

  • 1GB+可用内存
  • 50 GB+ 可用磁盘空间

软件配置:

  • Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。

注意: 如果将Jenkins作为Docker 容器运行,这不是必需的

安装平台

Docker

Docker是一个在称为“容器”(或Docker容器)的孤立环境中可运行应用程序的平台。 像Jenkins这样的应用程序可以作为只读的“镜像”(或Docker镜像)下载, 每个镜像都作为容器在Docker中运行。Docker容器实际上是Docker镜像的“运行实例”。 从这个角度来看,镜像永久存储(只要镜像更新发布),而容器暂时存储。 在Docker文档的入门指南,Getting Started, Part 1: Orientation and setup页面中阅读有关这些概念的更多信息 。

Docker的基础平台和容器设计意味着可以在任何支持的操作系统(macOS,Linux和Windows) 或云服务(AWS和Azure)上运行单个Docker镜像(对于任何给定的应用程序,如Jenkins)。

安装Docker

要在您的操作系统上安装Docker,请访问 Docker store网站并单击适用于您的操作系统或云服务的Docker Community Edition框。 按照其网站上的安装说明进行操作。

Jenkins也可以在Docker企业版上运行,您可以通过 Docker商店网站上的Docker EE访问它。

[ CAUTION]

如果您要在基于Linux的操作系统上安装Docker,请确保配置Docker,以便它可以作为非root用户进行管理。 在Docker的Post-installation steps for Linux网页中了解更多关于它 的文档。 如何将Docker配置为默认启动的方式也可在此文档中查找。

在Docker中下载并运行Jenkins

几个可用的Jenkins Docker镜像.

建议使用的Docker映像是jenkinsci/blueocean image(来自 the Docker Hub repository)。 该镜像包含当前的长期支持 (LTS) 的Jenkins版本 (可以投入使用) ,捆绑了所有Blue Ocean插件和功能。这意味着你不需要单独安装Blue Ocean插件。

  • jenkinsci/blueocean每次发布Blue Ocean新版本时,都会发布新镜像。您可以在标签 page页上看到以前发布的镜像版本列表 。

  • 您还可以使用其他Jenkins Docker镜像(在Docker Hub上可通过jenkins/jenkins获取)。 但是,这些不会随Blue Ocean的发布而提供,需要通过 Jenkins中的Manage Jenkins > Manage Plugins页面进行安装。 在Blue Ocean入门中了解更多信息。

在macOS和Linux上

https://www.jenkins.io/zh/doc/book/installing/#%E5%9C%A8macos%E5%92%8Clinux%E4%B8%8A

  • 第一步:打开一个终端窗口。
  • 第二步:下载 jenkinsci/blueocean 镜像并使用以下docker run 命令将其作为Docker中的容器运行 :
docker run \
-u root \
--rm \  1
-d \ 2
-p 9090:8080 \ 3
-p 50000:50000 \ 4
-v jenkins-data:/var/jenkins_home \ 5
-v /var/run/docker.sock:/var/run/docker.sock \ 6
jenkinsci/blueocean 7
  • 1、(可选) jenkinsci/blueocean 关闭时自动删除Docker容器(下图为实例)。如果您需要退出Jenkins,这可以保持整洁。
  • 2、(可选)jenkinsci/blueocean 在后台运行容器(即“分离”模式)并输出容器ID。如果您不指定此选项, 则在终端窗口中输出正在运行的此容器的Docker日志。
  • 3、映射(例如“发布”)jenkinsci/blueocean 容器的端口8080到主机上的端口8080。 第一个数字代表主机上的端口,而最后一个代表容器的端口。因此,如果您为此选项指定 -p 49000:8080 ,您将通过端口49000访问主机上的Jenkins。
  • 4、(可选)将 jenkinsci/blueocean 容器的端口50000 映射到主机上的端口50000。 如果您在其他机器上设置了一个或多个基于JNLP的Jenkins代理程序,而这些代理程序又与 jenkinsci/blueocean 容器交互(充当“主”Jenkins服务器,或者简称为“Jenkins主”), 则这是必需的。默认情况下,基于JNLP的Jenkins代理通过TCP端口50000与Jenkins主站进行通信。 您可以通过“ 配置全局安全性” 页面更改Jenkins主服务器上的端口号。如果您要将您的Jenkins主机的JNLP代理端口的TCP端口 值更改为51000(例如),那么您需要重新运行Jenkins(通过此 docker run …​命令)并指定此“发布”选项 -p 52000:51000,其中最后一个值与Jenkins master上的这个更改值相匹配,第一个值是Jenkins主机的主机上的端口号, 通过它,基于JNLP的Jenkins代理与Jenkins主机进行通信 - 例如52000。
  • 5、(可选,但强烈建议)映射在容器中的/var/jenkins_home 目录到具有名字 jenkins-data 的volume。 如果这个卷不存在,那么这个 docker run 命令会自动为你创建卷。 如果您希望每次重新启动Jenkins(通过此 docker run … 命令)时保持Jenkins状态,则此选项是必需的 。 如果你没有指定这个选项,那么在每次重新启动后,Jenkins将有效地重置为新的实例。
    注意: 所述的 jenkins-data 卷也可以 docker volume create命令创建: docker volume create jenkins-data 代替映射 /var/jenkins_home 目录转换为Docker卷,还 可以将此目录映射到计算机本地文件系统上的目录。 例如,指定该选项 -v H O M E / j e n k i n s : / v a r / j e n k i n s h o m e 会将容器的 / v a r / j e n k i n s h o m e 目录映射到本地计算机上目录中的 j e n k i n s 子目录,该 HOME/jenkins:/var/jenkins_home 会将容器的 /var/jenkins_home 目录映射 到 本地计算机上目录中的 jenkins 子目录, 该 HOME/jenkins:/var/jenkinshome会将容器的/var/jenkinshome目录映射到本地计算机上目录中的jenkins子目录,该HOME目录通常是 /Users//jenkins 或/home/<your-username>/jenkins
  • 6、(可选) /var/run/docker.sock 表示Docker守护程序通过其监听的基于Unix的套接字。 该映射允许 jenkinsci/blueocean 容器与Docker守护进程通信, 如果 jenkinsci/blueocean 容器需要实例化其他Docker容器,则该守护进程是必需的。 如果运行声明式管道,其语法包含agent部分用 docker
    例如, agent { docker { … } } 此选项是必需的。 在Pipeline Syntax 页面上关于这个的信息 。
  • 7、jenkinsci/blueocean Docker镜像本身。如果此镜像尚未下载,则此 docker run 命令 将自动为您下载镜像。此外,如果自上次运行此命令后发布了此镜像的任何更新, 则再次运行此命令将自动为您下载这些已发布的镜像更新。 注意:这个Docker镜像也可以使用以下 docker pull命令独立下载(或更新) : docker pull jenkinsci/blueocean

注意:
如果复制并粘贴上面的命令片段不起作用,请尝试在此处复制并粘贴此无注释版本:

jenkinsci/blueocean镜像的容器内比如是8080,如下文的 9090:8080

docker run \-u root \--rm \-d \-p 9090:8080 \-p 50000:50000 \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \jenkinsci/blueocean去掉关闭时,自动删除docker容器,避免后续使用麻烦docker run \-u root \-d \-p 9090:8080 \-p 50000:50000 \-v jenkins-data:/var/jenkins_home \-v /var/run/docker.sock:/var/run/docker.sock \jenkinsci/blueocean
  • 第三步:继续按照Post-installation setup wizard安装;接着就是详细安装流程

安装后设置向导

下载安装并运行Jenkins后,即将开始进入安装向导。

此安装向导会引导您完成几个快速“一次性”步骤来解锁Jenkins, 使用插件对其进行自定义,并创建第一个可以继续访问Jenkins的管理员用户。

篇幅有限,文中带图,若查看剩余内容:请点击
更多内容

相关文章:

  • acme在同一台服务器上设置多个Ali_key实现自动ssl申请和续期
  • IDEA写mybatis程序,java.io.IOException:Could not find resource mybatis-config.xml
  • 无线WiFi安全渗透与攻防(五) aircrack-ng(亲测有效)、mdk3联合攻击
  • Windows GitBash解决Github添加密钥时提示Key is already in use的问题
  • 【源码系列】短剧系统开发国际版短剧系统软件平台介绍
  • Mysql 提升索引效率优化的八种方法
  • 常见的数据结构有哪些?
  • 通过右键用WebStorm、Idea打开某个文件夹或者在某一文件夹下右键打开当前文件夹用上述两个应用
  • 2023最新软件测试20个基础面试题及答案
  • 实测_GPT_Assistant
  • CentOS修改root用户密码
  • Vue+ElementUI技巧分享:自定义表单项label的文字提示
  • golang中context使用总结
  • 【自动化测试】基于Selenium + Python的web自动化框架!
  • SDL2 消息循环和事件响应
  • 「译」Node.js Streams 基础
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • CSS 提示工具(Tooltip)
  • CSS魔法堂:Absolute Positioning就这个样
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Laravel Telescope:优雅的应用调试工具
  • Linux下的乱码问题
  • linux学习笔记
  • magento2项目上线注意事项
  • Vue2 SSR 的优化之旅
  • Web Storage相关
  • 阿里云应用高可用服务公测发布
  • 观察者模式实现非直接耦合
  • 你不可错过的前端面试题(一)
  • 如何在 Tornado 中实现 Middleware
  • 使用API自动生成工具优化前端工作流
  • 微服务框架lagom
  • 一个JAVA程序员成长之路分享
  • 用jQuery怎么做到前后端分离
  • 找一份好的前端工作,起点很重要
  • postgresql行列转换函数
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (附源码)apringboot计算机专业大学生就业指南 毕业设计061355
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm码农论坛 毕业设计 231126
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转)甲方乙方——赵民谈找工作
  • (转载)利用webkit抓取动态网页和链接
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 和 .NET Framework 中的 MEF2
  • .Net小白的大学四年,内含面经
  • ?
  • @GetMapping和@RequestMapping的区别
  • [《百万宝贝》观后]To be or not to be?