3. Jenkins 安装与初始化:基于 Docker 和传统方式的安装步骤,初始化配置向导,插件管理入门
Jenkins 的安装方式主要分为传统 WAR 包部署和容器化部署两种。本节将分别演示基于 Docker 和传统方式的安装步骤,并详细讲解初始化配置向导及插件管理入门操作。
3.1 安装方式对比
| 对比维度 | 传统 WAR 包方式 | Docker 容器方式 |
|---|---|---|
| 环境依赖 | 需手动安装 JDK 11/17、Tomcat 或直接运行 | 仅需 Docker 引擎,镜像自带 JDK |
| 升级维护 | 手动替换 WAR 包,需重启服务 | 拉取新镜像,重建容器即可 |
| 数据持久化 | 默认存储在 ~/.jenkins |
需挂载宿主机目录或命名卷 |
| 插件兼容性 | 完全兼容,无额外限制 | 完全兼容,注意容器网络配置 |
| 适用场景 | 已有 Java 环境的传统服务器 | 云原生、微服务、快速交付团队 |
3.2 基于 Docker 的安装步骤
Docker 方式是目前最推荐的 Jenkins 部署方案,具有环境隔离、快速启动、易于迁移等优势。
3.2.1 拉取官方 LTS 镜像
docker pull jenkins/jenkins:lts-jdk11
3.2.2 创建数据持久化目录并启动容器
mkdir -p /data/jenkins_home
chown -R 1000:1000 /data/jenkins_home
docker run -d \
--name jenkins-server \
-p 8080:8080 \
-p 50000:50000 \
-v /data/jenkins_home:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
--restart=always \
jenkins/jenkins:lts-jdk11
提示:挂载
docker.sock 允许 Jenkins 容器内调用宿主机 Docker 守护进程,实现“Docker in Docker”风格的流水线构建。
3.2.3 验证容器运行状态
docker ps | grep jenkins-server
docker logs jenkins-server # 查看初始管理员密码
3.3 基于传统 WAR 包的安装步骤
适用于无法使用容器环境的传统服务器或已有 Java 中间件的场景。
3.3.1 环境准备
确保已安装 JDK 11 或 JDK 17:
java -version
# 输出示例:openjdk version "11.0.20" 2023-07-18 LTS
3.3.2 下载并启动 Jenkins
wget https://get.jenkins.io/war-stable/2.440.3/jenkins.war
java -jar jenkins.war --httpPort=8080
如需后台运行,可使用 nohup 或注册为系统服务:
nohup java -jar jenkins.war --httpPort=8080 > jenkins.log 2>&1 &
3.4 初始化配置向导
首次访问 http://<服务器IP>:8080 时,Jenkins 会进入初始化向导页面。
初始化流程步骤:
- 解锁 Jenkins:从控制台日志或
/data/jenkins_home/secrets/initialAdminPassword获取初始密码。 - 安装推荐插件:选择“安装推荐的插件”,系统自动下载并安装常用插件集。
- 创建管理员用户:填写用户名、密码、邮箱,完成第一个管理员账号创建。
- 实例配置:确认 Jenkins URL(默认
http://localhost:8080),可根据实际域名修改。 - 开始使用:点击“保存并完成”,进入 Jenkins 主面板。
3.5 插件管理入门
插件是 Jenkins 生态的核心扩展机制。通过“系统管理 → 插件管理”可完成插件的查看、安装、更新和卸载操作。
3.5.1 插件管理界面结构
| 标签页 | 功能说明 |
|---|---|
| 更新 | 显示已安装插件的可用更新列表,支持批量升级 |
| 可选插件 | 浏览 Jenkins 官方仓库中所有可安装的插件,支持搜索和过滤 |
| 已安装 | 查看当前已安装的插件列表,可卸载或降级 |
| 高级 | 上传自定义 .hpi 插件包,配置更新站点 URL |
3.5.2 核心插件推荐清单
以下插件是 CI/CD 流水线场景的必备组件:
- Pipeline:提供流水线即代码(Jenkinsfile)支持
- Git:Git 源码管理集成
- Blue Ocean:现代化流水线可视化界面
- Credentials Binding:安全管理凭据(SSH、、密码)
- Docker Pipeline:在流水线中构建和发布 Docker 镜像
- Kubernetes:动态创建 Kubernetes Pod 作为构建代理
3.5.3 安装插件示例
# 通过 Jenkins CLI 安装插件(需先配置 API )
java -jar jenkins-cli.jar -s http://localhost:8080/ -auth admin: install-plugin \
pipeline-git \
blueocean \
docker-workflow \
kubernetes
注意:插件版本之间存在依赖关系。安装失败时请检查“插件管理 → 更新”页面的依赖冲突提示,或使用“安装后重启”选项确保插件正确加载。
3.6 初始化后的安全配置建议
- 修改默认端口:避免使用 8080 等常见端口,降低扫描攻击风险
- 启用 CSRF 保护:系统管理 → 全局安全配置 → 勾选“防止跨站点请求伪造”
- 配置代理节点认证:使用 SSH 密钥或 JNLP 令牌,避免明文密码
- 定期备份
JENKINS_HOME:包含所有配置、作业定义和构建历史
最佳实践:初始化完成后立即创建非 root 管理员账号,并禁用默认的 admin 账号远程登录。同时配置邮件通知,以便在构建失败或插件更新时及时获知状态。