
本文首发于 栏轩·阁欢迎访问阅读原文获取更好的阅读体验。Jenkins是什么为什么要学它Jenkins 是一个开源的自动化服务器用于持续集成CI和持续交付CD。它可以自动化构建、测试、部署的流程你每次提交代码Jenkins 都可以自动拉取代码 → 运行测试 → 打包 → 部署到服务器。为什么要学它面试必考CI/CD 是 DevOps 的核心实践Jenkins 是目前最主流的 CI/CD 工具提效手动部署又慢又容易出错Jenkins 一键自动化生态丰富上千款插件可以跟 Git、Docker、K8s、Maven、Gradle 等工具深度集成掌握它可以做什么自动拉取代码— 监听 Git 仓库变化代码一推送就触发构建自动构建打包— Maven/Gradle 编译、npm build、Docker 镜像构建自动运行测试— 单元测试、集成测试失败及时告警自动部署发布— 推送到测试/生产服务器或部署到 K8s流水线可视化— 用 Pipeline Blue Ocean 看到每一步的执行过程Docker 部署docker compose配置name: Jenkins services: jenkins: image: jenkins/jenkins:lts container_name: jenkins user: root ports: - 34560:8080 - 34561:50000 volumes: - /volume/Jenkins/jenkins_home:/var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock映射说明34560:8080— Jenkins Web 控制台端口34561:50000— Jenkins Agent节点通信端口/volume/Jenkins/jenkins_home— Jenkins 工作目录所有配置、插件、Job 数据都在这/var/run/docker.sock— 挂载 Docker 套接字让容器内部能调用宿主机的 Docker部署后初始化1. 获取管理员密码docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword输出示例9b7e8ab8179b418fabe23c8d0e01dcb92. Web UI 设置访问 http://localhost:34560/进入登录系统输入初始密码输入密码后弹出安装插件的提示点击安装推荐插件不装这些你后面做 CI/CD 寸步难行。页面会显示所有即将安装的插件列表推荐列表里默认包含Git拉取代码必备Pipeline写流水线Jenkinsfile核心Maven/GradleJava 项目打包用Credentials管理账号密码镜像仓库、K8sBlue Ocean更美观的 UI适合新手看流程安装完成后注册管理员用户输入用户名、密码、邮箱等信息然后配置 Jenkins URL本地学习就保持默认即可直接保持默认http://localhost:34560/点保存即可不用修改。说明你本地访问、测试、跑流水线默认值完全够用不影响构建、拉代码、执行docker/helm/kubectl等核心功能。这个地址主要用于邮件通知、Git 状态回写、外部跳转链接。个人学习 / 本地环境用不到这些高级功能。后续如果要局域网 / 其他电脑访问再改成你的电脑本机 IP例如http://192.168.x.x:34560/就行。然后就进入了 Jenkins 的控制台了创建第一个 Pipeline 任务点击New Item新建任务你可以看到有多个任务类型这里简单介绍Freestyle project— 自由风格项目通过 UI 配置构建步骤适合简单任务Pipeline— 流水线通过编写Jenkinsfile脚本定义构建流程推荐使用Multibranch Pipeline— 多分支流水线自动为每个 Git 分支创建流水线Folder— 文件夹用来归类整理 Job作为初学选流水线 (Pipeline)下滑找到流水线脚本输入框输入以下内容pipeline { agent any stages { stage(版本检查) { steps { sh echo Jenkins 本体工作正常 } } } }然后保存点击立即构建。构建成功后查看控制台日志可以看到一切正常第一行输出Started by user xxx最后显示Finished: SUCCESS。总结Jenkins 的核心价值在于自动化一切重复操作。从拉代码、编译、测试到部署全部交给 Jenkins 自动完成。初学阶段重点掌握会用 Docker 部署 Jenkins能创建 Pipeline 任务并写简单的流水线脚本结合 Git Maven/Gradle 实现自动构建结合 Docker/K8s 实现自动部署后续深入学习方向Pipeline 语法进阶Declarative vs Scripted、共享库Shared Libraries、分布式构建Master/Agent、与 K8s 集成实现动态 Agent。