Docker部署Jenkins
参考链接: https://github.com/jenkinsci/docker/blob/master/README.md
1 准备目录
在home目录下创建jenkins相关目录,用于挂载容器数据,避免容器删除后数据丢失。
bash
mkdir /home/jenkins
cd /home/jenkins
mkdir jenkins_home
# 把当前目录的拥有者赋值给uid 1000(Jenkins容器默认使用该uid)
chown -R 1000 jenkins_home
# 创建maven仓库文件目录(用于后续maven构建项目)
mkdir -p maven/m2
将本地资源目录下的setting.xml文件,上传到 /home/jenkins/maven/m2 目录中。
2 开放端口
Jenkins默认需要8380端口(web访问)和50000端口(代理通信、可选),端口开放方式需根据服务器类型区分,避免配置无效。
重要提醒:若使用云服务器(阿里云、腾讯云等),无需执行以下防火墙命令,直接在云控制台的安全组中配置入方向规则,开放8380和50000端口即可。
若为本地服务器或虚拟机,执行以下命令开放端口并使其永久生效:
bash
# 开放8380端口(Jenkins访问端口),永久生效
firewall-cmd --add-port 8380/tcp --permanent
# 重新加载防火墙,使配置生效
firewall-cmd --reload
3 服务编排
采用Docker -Compose编排服务,可简化部署命令,统一管理容器配置,后续启停、重启服务更便捷。需在之前创建的/home/jenkins目录下操作。

bash
vi docker-compose.yml
在文件中写入下列内容后保存(若有现成yml文件,可直接上传到jenkins目录,跳过本步骤):
yaml
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts # 使用Jenkins稳定版镜像
container_name: jenkins # 容器名称,便于后续操作
user: root # 以root用户运行,避免权限问题
privileged: true # 授予容器特权,解决挂载目录权限问题
environment:
TZ: Asia/Shanghai # 设置时区为上海,避免时间错乱
ports:
- "8380:8080" # 映射Jenkinsweb访问端口(宿主机:容器)
- "50000:50000" # 映射Jenkins代理端口(用于分布式构建)
volumes:
- /home/jenkins/jenkins_home:/var/jenkins_home # 挂载Jenkins工作目录
- /home/jenkins/maven/m2:/root/.m2 # 挂载maven仓库目录
- /var/run/docker.sock:/var/run/docker.sock # 挂载docker守护进程,实现容器内操作docker
配置完成后,按Esc键,输入:wq保存并退出编辑。
4 启动服务
服务编排完成后,可通过简单命令实现服务的启动、停止、重启,首次启动推荐使用前台启动,便于查看启动日志和初始密码。
4.1 前台启动(首次启动推荐)
前台启动可实时查看容器启动过程和日志,首次启动会自动拉取Jenkins镜像,根据网络速度不同,等待时间约5-15分钟。
bash
# 在/home/jenkins目录下执行,前台启动Jenkins服务
docker-compose up
首次启动拉取镜像的效果如下:

当日志中出现以下内容时,说明Jenkins服务启动成功,同时会生成管理员初始密码(每个人的密码不同,以自身日志为准):

4.2 停止前台启动
停止前台运行的服务,直接按Ctrl \+ C即可,停止成功的日志示例:

4.3 后台启动
前台启动会占用终端,关闭终端后服务会停止,日常使用建议切换为后台启动模式,确保服务持续运行。
bash
# 后台启动Jenkins服务,参数-d表示后台运行
docker-compose up -d
启动成功提示:

4.4 查看服务状态
启动服务后,可通过以下命令查看Jenkins容器是否正常运行,确认端口映射是否生效。
bash
# 查看正在运行的容器,筛选Jenkins相关信息
docker ps
运行正常的示例(可看到容器状态为Up,端口映射正常):

5 Jenkins初始化配置
服务启动成功后,需通过浏览器完成Jenkins的初始化配置,包括解锁服务、安装插件、创建管理员账号等,步骤如下。
5.1 初始化配置
5.1.1 访问Jenkins
打开本地浏览器,输入访问地址:http://服务器IP:8380(将服务器IP替换为自身服务器的公网或内网IP),进入Jenkins解锁页面
5.1.2 输入初始密码

页面会提示输入管理员初始密码,可通过以下两种方式获取:
- 查看启动日志(最直接):
bash
docker logs jenkins
日志中会包含初始密码,如下所示(示例):

- 通过挂载目录查看密码文件:
bash
cat /home/jenkins/jenkins_home/secrets/initialAdminPassword
5.1.3 安装插件
解锁成功后,进入插件安装选择页面,提供两种安装方式,根据自身经验选择即可:
-
安装推荐插件:Jenkins社区筛选的常用插件,一键安装,适合新手,无需手动选择,能满足大部分基础使用需求。
-
选择插件来安装:适合有经验的用户,可根据自身项目需求,自定义选择需要的插件,避免安装无用插件。
新手推荐选择「安装推荐插件」,点击后耐心等待安装完成即可。
温馨提示:插件安装失败多为网络波动或版本兼容问题,可尝试配置代理、重复安装,若仍失败可暂时跳过,后续进入后台后再按需补充安装。


5.1.4 创建管理员账号
插件安装完成后,进入管理员账号创建页面,需填写以下信息(建议牢记,后续登录Jenkins的核心凭证):

5.1.5 配置实例URL
进入实例配置页面,默认显示的Jenkins URL(http://服务器IP:8380/)无需修改,确认IP地址对应即可,点击「保存并完成」。

5.1.6 完成初始化
点击「开始使用Jenkins」,进入Jenkins主页面,此时Jenkins初始化完成,可正常使用。

5.2 可选配置:优化Jenkins功能(按需操作)
以下配置为可选功能,根据自身项目需求选择是否配置,主要用于优化Jenkins使用体验、扩展功能范围。
5.2.1 全局工具配置(添加Maven)(可选)
打开配置页面后,拉到最下面,然后新增一个maven




5.2.2 全局工具配置(添加jdk版本)(可选)
首先需要创建一个目录来放jdk
bash
cd /home/jenkins/jenkins_home
mkdir jdks
cd jdks
然后到Oracle官网或镜像网站去下载一个你要的JDK版本的安装包,下载x64架构的Linux tar.gz包
bash
wget https://mirrors.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz

使用tar命令解压安装包,命令行如:
bash
tar -zxvf jdk-8u202-linux-x64.tar.gz
解压完成后如下图所示

然后在全局工具配置中,新增JDK配置

这里需要注意
去查看你的 docker-compose.yml文档
bash
cat docker-compose.yml

拿我的文档来说
我的文档docker-compose.yml 里,做了数据卷挂载,把宿主机的 /home/jenkins_home 映射到了容器内的 /var/jenkins_home(Jenkins 容器默认工作目录)。
所以:
- 宿主机路径:
/home/jenkins_home/jdks/jdk1.8.0_421 - 容器内路径:
/var/jenkins_home/jdks/jdk1.8.0_421
所以要这样填

填写完成后点击,保存按钮
5.3 配置SSH插件(可选)
若需要在Jenkins构建过程中,通过SSH远程登录其他服务器执行脚本(如部署项目、启动服务等),需安装并配置SSH插件,步骤如下。
5.3.1 安装SSH插件
-
进入插件管理页面:Jenkins主页面 → 系统管理 → 插件管理。

-
切换到「可用插件」选项卡,搜索关键词「Publish Over SSH」。

-
勾选该插件,点击「安装」,等待下载完成。

-
下载完成后,勾选「重启Jenkins(空闲时)」,重启Jenkins使插件生效。

提示:Docker安装的Jenkins,重启后若服务未自动启动,执行命令
bash
docker -compose start
手动启动。
重启成功后可能会自动进入登录界面


输入登录信息点击登录后,会进入到刚才的下载界面

6 扩展配置:对接代码仓库(可选)
Jenkins常用于自动化构建,需对接Gitee、GitHub、GitLab等代码仓库,以下为常用的凭据添加。
6.1 添加凭据
提前添加代码仓库的账号凭据,后续构建项目时可直接选择凭据,无需重复输入账号密码,提升效率。
6.1.1 进入凭据管理
在Jenkins中找到凭证管理

添加一个全局凭证

点击「Add Credentials」,选择凭据类型(例如「Username with password」,适用于账号密码登录的代码仓库)。

比如我这里是用的云效,那么就是要去云效找到https密码和账号
填写代码仓库的登录用户名、密码,自定义凭据名称(便于后续选择,例如Gitee-账号)。
点击「Create」,凭据创建完成,可在凭据列表中查看、编辑或删除。