Jenkins安装部署完全指南 - Docker/系统安装一网打尽

一、前言
在上一篇文章中,我们了解了Jenkins是什么以及CI/CD的基本概念。现在,让我们动手把Jenkins安装起来!本文将介绍三种主流的安装方式,从最推荐的Docker方式到传统的系统安装,手把手带你完成Jenkins的部署。
二、Docker方式安装Jenkins(推荐)
为什么推荐Docker?因为它最简单、最干净、最不容易出问题。一条命令就能跑起来,不用操心依赖冲突和环境配置。
2.1 使用docker run启动
最简单的方式,一条命令搞定:
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
--restart=on-failure \
jenkins/jenkins:lts
参数说明:
- -d:后台运行容器
- --name jenkins:给容器起个名字叫jenkins
- -p 8080:8080:将容器内8080端口映射到主机8080端口(Web界面访问端口)
- -p 50000:50000:Agent通信端口(JNLP连接用)
- -v jenkins_home:/var/jenkins_home:数据持久化,把Jenkins数据存在Docker卷中
- --restart=on-failure:容器异常退出时自动重启
- jenkins/jenkins:lts:使用长期支持版镜像(推荐生产环境用LTS)
如果你想使用最新版(包含最新功能但可能不太稳定):
docker run -d \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:latest
2.2 使用docker-compose启动
如果你更喜欢配置文件的方式(管理更方便),可以用docker-compose。创建 docker-compose.yml 文件:
version: '3.8'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
privileged: true
user: root
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
restart: unless-stopped
volumes:
jenkins_home:
然后执行:
# 启动
docker-compose up -d
# 查看日志
docker-compose logs -f jenkins
# 停止
docker-compose down
小贴士:这里映射了Docker socket(/var/run/docker.sock),这样Jenkins就可以在容器内调用宿主机的Docker,方便后续做Docker构建和部署。
2.3 查看初始密码
Jenkins首次启动后会生成一个初始管理员密码,你需要用它来解锁Jenkins:
# 方式1:从容器日志获取
docker logs jenkins
# 方式2:从容器内文件获取
docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
你会看到类似这样的输出:
*************************************************************
*************************************************************
*************************************************************
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
把这个密码复制下来,后面要用!
三、Linux系统直接安装
如果你不想用Docker,也可以直接在Linux系统上安装Jenkins。
3.1 CentOS/RHEL安装
第一步:安装Java环境(Jenkins需要JDK 11或17):
# 安装OpenJDK 17
sudo yum install -y java-17-openjdk java-17-openjdk-devel
# 验证安装
java -version
第二步:添加Jenkins仓库并安装:
# 添加Jenkins仓库
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 导入GPG密钥
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
# 安装Jenkins
sudo yum install -y jenkins
第三步:启动Jenkins:
# 启动Jenkins服务
sudo systemctl start jenkins
# 设置开机自启
sudo systemctl enable jenkins
# 查看服务状态
sudo systemctl status jenkins
第四步:获取初始密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
3.2 Ubuntu/Debian安装
# 安装JDK 17
sudo apt update
sudo apt install -y openjdk-17-jdk
# 添加Jenkins仓库密钥
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | \
sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
# 添加Jenkins仓库
echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/ | \
sudo tee /etc/apt/sources.list.d/jenkins.list > /dev/null
# 安装Jenkins
sudo apt update
sudo apt install -y jenkins
# 启动
sudo systemctl start jenkins
sudo systemctl enable jenkins
3.3 防火墙配置
如果无法访问Jenkins页面,可能是防火墙的问题:
# CentOS/RHEL - firewalld
sudo firewall-cmd --permanent --add-port=8080/tcp
sudo firewall-cmd --reload
# Ubuntu - ufw
sudo ufw allow 8080/tcp
sudo ufw reload
四、首次启动与初始化配置
安装完成后,打开浏览器访问 http://你的服务器IP:8080,你会看到Jenkins的解锁页面。
4.1 解锁Jenkins
在解锁页面粘贴刚才获取的初始密码,点击"继续"。
4.2 安装插件
接下来会看到插件安装页面,有两个选择:
- 安装推荐的插件:新手请选这个!它会自动安装最常用的插件
- 选择插件来安装:老手可以自定义选择
强烈建议新手选择"安装推荐的插件",等待安装完成即可(通常需要2-5分钟)。
推荐安装的插件包括:
- Git Plugin - 代码仓库集成
- Pipeline - 流水线支持
- Docker Plugin - Docker集成
- Credentials Binding - 凭据管理
- Mailer - 邮件通知
4.3 创建管理员账户
插件安装完成后,会要求你创建第一个管理员账户:
- 用户名:建议用admin或你的名字
- 密码:设置一个你记得住的密码
- 全名:显示名称
- 邮箱:用于接收通知
填写完毕后点击"保存并完成"。
4.4 配置Jenkins URL
确认Jenkins的访问地址,默认是 http://服务器IP:8080/,如果你有域名可以改成域名。点击"保存并完成"。
看到"Jenkins已就绪!"的提示,恭喜你,安装完成了!
五、插件管理详解
Jenkins的强大很大程度上来自它的插件生态。学会管理插件非常重要。
5.1 进入插件管理
点击左侧菜单 Manage Jenkins(管理Jenkins) → Plugins(插件)
这里有四个标签页:
- Updates(更新):有新版本的插件
- Available(可选):可以安装的新插件
- Installed(已安装):当前已安装的插件
- Advanced(高级):高级设置,如更新站点配置
5.2 常用必装插件推荐
以下插件建议全部安装:
# 版本控制
Git Plugin # Git仓库支持
GitLab Plugin # GitLab集成
GitHub Plugin # GitHub集成
# 构建工具
Maven Integration # Maven项目支持
Gradle Plugin # Gradle项目支持
NodeJS Plugin # Node.js项目支持
# 流水线
Pipeline # Pipeline核心
Pipeline Stage View # Pipeline可视化视图
Multibranch Pipeline # 多分支Pipeline
# 部署
Docker Pipeline # Docker Pipeline支持
SSH Plugin # 远程SSH部署
Publish Over SSH # SSH发布插件
# 通知
Email Extension # 增强邮件通知
DingTalk # 钉钉通知
# 代码质量
SonarQube Scanner # 代码质量检查
Checkstyle # 代码规范检查
# 其他实用
Credentials # 凭据管理
Role-based Strategy # 角色权限管理
ThinBackup # 备份恢复
5.3 安装插件
在"Available plugins"标签页,搜索你要安装的插件名称,勾选后点击"Install without restart"(不重启安装)或"Download now and install after restart"(重启后安装)。
六、全局工具配置
安装完Jenkins后,需要配置一些全局工具,让Jenkins知道它们在哪里。
进入 Manage Jenkins → Tools(旧版本叫Global Tool Configuration)。
6.1 配置JDK
- 点击"Add JDK"
- 取消勾选"Install automatically"(如果是Docker方式,JDK已经在容器里了)
- Name:填
JDK17 - JAVA_HOME:填JDK安装路径,Docker方式通常是
/opt/java/openjdk
如何找到JAVA_HOME?
# Docker方式
docker exec jenkins echo $JAVA_HOME
# 系统安装方式
readlink -f $(which java) | sed 's:/bin/java::'
6.2 配置Maven
- 点击"Add Maven"
- 可以勾选"Install automatically",选择Maven版本
- Name:填
Maven3
6.3 配置Git
- 通常Jenkins会自动检测到系统中的Git
- Name:填
Default - Path to Git executable:填
git或完整路径
# 查看git路径
which git
七、常见安装问题与解决方案
7.1 端口被占用
# 查看端口占用
netstat -tlnp | grep 8080
# 杀掉占用进程
kill -9 进程号
# 或者改用其他端口
docker run -d -p 9090:8080 --name jenkins jenkins/jenkins:lts
7.2 权限不足
# Docker方式 - 确保卷权限
docker exec -u root jenkins chown -R jenkins:jenkins /var/jenkins_home
# 系统安装方式
sudo chown -R jenkins:jenkins /var/lib/jenkins
7.3 插件安装失败
插件安装失败通常是网络问题,解决方案:
- 更换更新站点为国内镜像:
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/current/update-center.json - 手动下载插件的.hpi文件,在Advanced标签页上传安装
- 检查代理设置(如果在公司内网)
7.4 忘记管理员密码
# 1. 停止Jenkins
docker stop jenkins # 或 systemctl stop jenkins
# 2. 编辑配置文件,暂时关闭安全
# Docker方式
docker exec jenkins sed -i 's/<useSecurity>true</useSecurity>/<useSecurity>false</useSecurity>/' /var/jenkins_home/config.xml
# 系统安装方式
sudo sed -i 's/<useSecurity>true</useSecurity>/<useSecurity>false</useSecurity>/' /var/lib/jenkins/config.xml
# 3. 重启Jenkins
docker start jenkins # 或 systemctl start jenkins
# 4. 访问Jenkins,进入管理页面重置密码
# 5. 重新开启安全
7.5 Jenkins启动缓慢
Jenkins默认使用128MB堆内存,可能不够用。修改内存配置:
# Docker方式
docker run -d \
--name jenkins \
-e JAVA_OPTS="-Xmx2048m -Xms512m" \
-p 8080:8080 \
-v jenkins_home:/var/jenkins_home \
jenkins/jenkins:lts
# 系统安装方式 - 编辑 /etc/sysconfig/jenkins(CentOS)
# 或 /etc/default/jenkins(Ubuntu)
JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -Xmx2048m -Xms512m"
八、总结
本文详细介绍了Jenkins的三种安装方式:
- Docker安装:最推荐,简单快速,环境隔离
- CentOS/RHEL安装:传统方式,适合已有服务器
- Ubuntu/Debian安装:类似CentOS,包管理器不同
同时讲解了首次启动的初始化配置、插件管理和全局工具配置。下一篇我们将深入Jenkins的界面,了解各个功能区域的使用方法。







