docker版Jenkins维护手册
1.容器启停与生命周期
docker run -u root -d --restart always --privileged=true -p 9086:8080 -p 50000:50000 -v /data/jenkins/jenkins_home:/var/jenkins_home -v /data:/data -v $(which docker):/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime -v /data/jenkins/.m2:/root/.m2/ -v /root/.ssh:/root/.ssh -e MAVEN_HOME=/data/opt/apache-maven-3.9.8 -e TZ=Asia/Shanghai --add-host=jenkins.yyh.com:192.168.1.24 --add-host=gitlab.yyh.com:192.168.1.24 --name jenkins jenkins/jenkins
命令参数详解:
-d 或 --detach: 让容器在后台运行
--name jenkins: 为您的容器指定一个唯一的、易于识别的名称,方便后续管理
-p 9086:8080: 将主机的 9086 端口映射到容器的 8080 端口。这是 Jenkins Web UI 的默认访问端口 。
-p 50000:50000: 将主机的 50000 端口映射到容器的 50000 端口。此端口用于基于 JNLP 的 Jenkins Agent(代理节点)与 Master 节点进行通信 。
-v /data/jenkins/jenkins_home:/var/jenkins_home: 这是最为关键的参数。它创建了一个名为 /data/jenkins/jenkins_home 的 Docker 卷(Volume),并将其挂载到容器内的 /var/jenkins_home 目录。Jenkins 的所有配置、插件、作业定义和构建历史都存储在此目录中。通过这种方式,即使容器被删除,所有数据也会被保留在 Docker 卷中,实现了数据的持久化 。
-v $(which docker):/bin/docker -v /var/run/docker.sock:/var/run/docker.sock :这个是关键的参数。让Jenkins在容器内也可以调用主机的docker命令。
-v /data/jenkins/.m2:/root/.m2/: 挂着主机的maven仓库存储地址,方便在容器内存储maven的artifacts
--add-host=jenkins.yyh.com:192.168.1.24 --add-host=gitlab.yyh.com:192.168.1.24 : 在容器内添加hosts的解析
|
场景 |
CLI 命令 |
关键截图/提示 |
|
启动 |
如上 |
执行后 docker ps 能看到 STATUS Up 即成功。 |
|
优雅停止 |
docker stop jenkins |
浏览器出现 502 即停止成功。 |
|
再次启动 |
docker start jenkins |
等待 30 s 左右,首页可访问。 |
|
重启 |
docker restart jenkins |
日志滚动到 Jenkins is fully up and running 即可。 |
|
查看实时日志 |
docker logs -f jenkins |
关键字 Jenkins is fully up and running 代表启动完成。 |
|
进入容器调试 |
docker exec -it jenkins bash |
2.系统管理入口总览
登录后右侧 → “Manage Jenkins”(系统管理)

图标为齿轮,子菜单包含 Configure System / Manage Users / Manage Plugins / Security / Manage Nodes 等。
3.用户管理(增删改)
|
操作 |
路径 |
|
新建用户 |
Manage Jenkins ▶ Manage Users ▶ “Create User”(左侧蓝色链接)→ 填 ID/密码/邮箱 → Create。 |
|
修改密码 |
用户列表 → 点击用户名 → “Configure” → 密码区域输入新口令 → Save。 |
|
删除用户 |
用户行右侧 “删除” 图标(红色 ×)→ 确认。 |
|
批量导入 |
需装 “Matrix Authorization Strategy” 插件 → 使用 “Bulk User Import” 或脚本。 |
4.权限模型与插件
|
维度 |
说明 |
|
全局权限 |
Overall/Read、Administer、Configure、Create、Delete、RunScripts 等。 |
|
项目权限 |
Item/Build、Item/Cancel、Item/Configure、Item/Read、Item/Workspace 等。 |
|
节点权限 |
Slave/Build、Slave/Configure、Slave/Delete、Slave/Disconnect 等。 |
5.启用“基于角色”的授权
- 1.装插件
Manage Jenkins ▶ Manage Plugins ▶ “Available” → 搜索 “Role-based Authorization Strategy” → 勾选 → Install without restart。
- 2.切换授权策略
Manage Jenkins ▶ Configure Global Security ▶ Authorization → 勾选 “Role-Based Strategy” → Save。
- 3.创建角色
Manage Jenkins ▶ “Manage and Assign Roles” → Manage Roles
- Global roles:例如 dev-role 只给 Overall/Read、Job/Build。
- Item roles:Pattern 填 dev.* 赋予对该前缀项目的所有权限。
- 4.分配角色
同一页面切到 Assign Roles → 给用户勾选对应角色 → Save。
角色列表右侧有矩阵式复选框,与 Windows 权限表类似。
6.备份与恢复
已有定时在每天凌晨2:55开始自动备份,对应的Jenkins目录会保留3天,循环备份



如果需要恢复,可以先把目录解压到其他卷,恢复对应目录内容即可
7.升级小版本(热升级)
- docker pull jenkins/jenkins:2.521(举例)
- docker stop jenkins && docker rename jenkins jenkins-old
- 用同一串 docker run(仅改 tag)新建容器 → 自动沿用原 jenkins_home 数据。
- 启动后登录 → “Manage Jenkins” 右下角版本号已更新 → 确认插件兼容即可。
8.一键排障 cheat-sheet
|
现象 |
快速定位命令 / 页面 |
|
|
解锁串口 404 |
docker logs jenkins |
grep -A2 -B2 password` 再核对宿主机端口映射。 |
|
插件装失败 |
Manage Jenkins ▶ System Log ▶ “Install as a service” 日志看网络;国内建议换清华源。 |
|
|
用户登录 403 |
检查 “Global Security” → “Authorization” 是否误把 Overall/Read 给关掉了;可 docker exec 进容器 vi $JENKINS_HOME/config.xml 把 <useSecurity> 改成 false 重启临时关闭安全验证再改回。 |
|
|
Job 无法调用 Docker |
宿主机执行 sudo usermod -aG docker jenkins 后 重启整个容器;或给容器加 -v /var/run/docker.sock:/var/run/docker.sock --group-add $(stat -c %g /var/run/docker.sock)。 |
使用小贴士
- 任何修改 “Configure Global Security” 后,建议先开匿名 Overall/Read 权限,再细化,防止把自己锁外面。
- 生产环境把 “CSRF Protection” 保持开启;如用脚本调用 API,给用户生成 “API Token”(用户 ▶ Configure ▶ API Token)。
- 建议给 Jenkins 容器单独挂 SSD 盘存放 /var/jenkins_home,IO 提升明显。
- 每周一次 “Manage Jenkins ▶ Manage Plugins ▶ Updates” 检查插件安全公告,及时升级。
更多推荐


所有评论(0)