Linux Docker 部署 Jenkins 详解教程

news/2024/11/20 10:38:55/
一、环境准备
  1. 安装 Docker
    在开始之前,确保你的 Linux 系统已经安装了 Docker。以下是 CentOS 系统的安装步骤:

    # 确保 yum 包更新到最新
    yum update -y# 卸载旧版本(如果安装过旧版本的话)
    yum remove docker docker-common docker-selinux docker-engine# 安装需要的软件包
    yum install -y yum-utils device-mapper-persistent-data lvm2# 设置yum源
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo# 安装docker
    yum install docker-ce  # 安装最新稳定版# 启动和开机启动
    systemctl start docker
    systemctl enable docker# 验证安装是否成功
    docker --version
    
  2. 安装 Java 运行环境
    Jenkins 需要 Java 环境,确保你的系统已经安装了 Java。

  3. 安装其他必备工具
    如 Git、Maven 等,根据你的项目需求进行安装。

二、Jenkins 的安装与初始化
  1. 下载 Jenkins 镜像
    使用 Docker 命令拉取 Jenkins 镜像:

    docker pull jenkins/jenkins:lts
    
  2. 启动 Jenkins 容器
    创建并启动 Jenkins 容器,并映射端口和卷:

    docker run --name jenkins -u root --rm -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins/jenkins:lts
    

    这里 -p 8080:8080 将容器的 8080 端口映射到宿主机的 8080 端口,-p 50000:50000 映射 Jenkins 代理端口。-v /var/jenkins_home:/var/jenkins_home 用于数据持久化。

  3. 初始化 Jenkins
    访问 http://{部署Jenkins所在服务IP}:8080 进行初始化,你需要提供初始管理员密码,这个密码可以在 Jenkins 容器的启动日志中找到。

三、配置 Jenkins
  1. 插件安装与配置
    在 Jenkins 的管理界面安装必要的插件,如 Git 插件、Docker 插件等。

  2. 环境变量配置
    根据需要配置环境变量,例如设置 JDK、Maven 的路径等。

  3. 构建工具配置
    配置 JDK、Maven 等构建工具的路径。

四、构建自动化部署流程
  1. 创建 Jenkins 任务
    在 Jenkins 中创建新的构建任务,配置源代码管理、构建触发器等。

  2. 配置构建触发器
    可以配置定时构建、Webhook 触发等。

  3. 编写 Dockerfile
    根据你的应用编写 Dockerfile,用于构建 Docker 镜像。

  4. 部署应用
    在 Jenkins 任务中配置构建和部署步骤,实现自动化部署。

五、案例分析:Jenkins 与 Docker 结合实现 CI/CD
  • 项目背景
    以一个 Java Spring Boot 应用为例,展示如何通过 Jenkins 和 Docker 实现自动化部署。

  • 具体步骤

    1. 在 Docker 中安装 Jenkins。
    2. 配置 Jenkins 基本信息。
    3. 利用 Dockerfile 和 Shell 脚本实现项目自动拉取、打包并运行。
  • 遇到的问题及解决方案
    在实际操作中可能会遇到的问题及相应的解决方案。

六、总结与最佳实践

通过上述步骤,你可以在 Linux 系统中使用 Docker 部署 Jenkins,并实现自动化部署。结合 Jenkins 和 Docker 的强大功能,可以极大地提高开发和部署的效率。


http://www.ppmy.cn/news/1548466.html

相关文章

Matlab 二维矩形板模态和固有频率的Matlab有限元法实现

本文给出了尺寸为200mm x 500mm x 2mm的二维矩形板的前六个固有频率和模态振型的评估结果,假设是一扇门,在某些点上有运动限制,假设是门环和把手。在MATLAB中通过自学算法进行评估,并将结果与COMSOL模拟进行比较。网格&#xff0c…

Go语言中的错误嵌套

在Go语言中,错误处理是程序健壮性的关键。Go 1.13版本引入了错误值的嵌套和链式处理,使得错误信息的传递和处理更加灵活和强大。这种机制允许我们在错误中嵌套另一个错误,从而创建一个错误链,这有助于调试和错误跟踪。 错误嵌套的…

OpenCV基础(2)

1.图像像素与通道操作 1.1.像素算术操作 //加法操作 void cv::add(InputArray src1,InputArray src2,OutputArray dst,InputArray masknoArray(),int dtype-1);//减法操作 void cv::subtract(InputArray src1,InputArray src2,OutputArray dst,InputArray masknoArray(),int …

Spring MVC前后端数据传输项目实践

目录 任务: 列表页界面设计 ​编辑 新增操作的界面设计 编辑操作的界面设计 删除操作的界面设计 ​编辑 操作流程: 新增项目模块 导入相关依赖 配置Web.xml 配置spring-mvc.xml Model分析 实体类User的实现 User的Vo类的实现 业务分析 业…

【WPF】Prism学习(六)

Prism Dependency Injection 1.依赖注入(Dependency Injection) 1.1. Prism与依赖注入的关系: Prism框架一直围绕依赖注入构建,这有助于构建可维护和可测试的应用程序,并减少或消除对静态和循环引用的依赖。 1.2. P…

Docker下网络性能问题排查

一 背景 docker 下的nginx的服务,在一些情况下访问请求会反馈比较慢,根据网文学习下,记录下一些实验过程。 二 验证环境 docker 太难下载了,找了一个老的环境的nginx,导入到系统中来: // 导入nginx # dock…

Flink是如何实现 End-To-End Exactly-once的?

flink 如何实现端到端的 Exactly-once? 端到端包含 Source, Transformation,Sink 三部分的Exactly-once Source:支持数据的replay,如Kafka的offset。Transformation:借助于checkpointSink:Checkpoint 两阶段事务提交 两阶段提…

基于Java Springboot甘肃旅游管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…