Linux Docker 部署 Jenkins 详解教程

一、环境准备
  1. 安装 Docker

    在开始之前,确保你的 Linux 系统已经安装了 Docker。以下是 CentOS 系统的安装步骤:

    bash 复制代码
    # 确保 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 镜像:

    bash 复制代码
    docker pull jenkins/jenkins:lts
  2. 启动 Jenkins 容器

    创建并启动 Jenkins 容器,并映射端口和卷:

    bash 复制代码
    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 的强大功能,可以极大地提高开发和部署的效率。

相关推荐
王琦03183 小时前
持续集成持续交付企业示例
运维·ci/cd
Lsetea3 小时前
SSL证书指纹相同但文件哈希不同:PEM、DER与公钥摘要怎么比
运维·https·ssl证书·openssl·证书链
wtblszn3 小时前
废气处理余热回收设备远程运维系统方案
运维
陈让然3 小时前
WSL 桥接设置静态IP(快速)
linux·网络·ubuntu
乔旭伟3 小时前
Linux 服务器备份实战:一致性快照、日志归档与恢复演练
linux·运维·服务器
乔旭伟3 小时前
Linux 服务器安全加固实战:SSH、防火墙、补丁与入侵排查
linux·服务器·安全
cpolar技术支持3 小时前
把配置发出去怕带出密钥?先把含凭据配置转成脱敏只读快照,用 cpolar 给同事核对差异
运维·python·内网穿透·cpolar·配置脱敏
我不会起名字3224 小时前
Redis 突然只能读不能写:MISCONF 报错的 3 类触发条件与 4 步恢复
运维·redis·持久化·排查·misconf
workflower4 小时前
Agentic AI 时代的企业ICT 基础设施运维
运维·人工智能·机器学习·重构·云计算·汽车
裕晟资质规划4 小时前
三类涉密资质延续时限差异分析:军工60日与集成印制3个月的边界
java·服务器·前端·网络·安全