目录一、环境前置方式 1docker run 快速启动1. 创建宿主机持久化目录2. 启动命令方式 2docker-compose.yml推荐生产使用二、首次访问初始化重点Docker 环境下 升级 Jenkins重点Docker Jenkins 跨服务器迁移高频踩坑清单坑 1目录权限报错最常见坑 2容器内无法执行 docker 命令想要宿主机 docker 构建镜像坑 3Java 版本不匹配坑 4升级启动失败如何回滚可选优化建议官方镜像jenkins/jenkins不要用 jenkinsci/jenkins 旧镜像 推荐 LTS 长期支持版 JDK17生产首选。核心原理容器本身只是运行环境所有数据保存在宿主机挂载目录/var/jenkins_home 升级、迁移只需要换镜像数据卷不动。一、环境前置已装好 docker docker-compose推荐使用 compose 管理开放端口8080Web 访问端口50000Jenkins Agent 通信端口方式 1docker run 快速启动1. 创建宿主机持久化目录mkdir -p /data/jenkins_home # 设置权限重中之重容器内jenkins用户UID1000 chown -R 1000:1000 /data/jenkins_home2. 启动命令docker run -d \ --name jenkins \ --restart always \ -p 8080:8080 \ -p 50000:50000 \ -v /data/jenkins_home:/var/jenkins_home \ -v /etc/localtime:/etc/localtime:ro \ jenkins/jenkins:2.462.3-lts-jdk17方式 2docker-compose.yml推荐生产使用新建docker-compose.ymlservices: jenkins: image: jenkins/jenkins:2.462.3-lts-jdk17 container_name: jenkins restart: always ports: - 8080:8080 - 50000:50000 volumes: # 持久化数据目录 - /data/jenkins_home:/var/jenkins_home # 同步宿主机时间 - /etc/localtime:/etc/localtime:ro environment: TZ: Asia/Shanghai启动# 首次启动前务必授权目录 chown -R 1000:1000 /data/jenkins_home docker compose up -d二、首次访问初始化浏览器访问http://服务器IP:8080获取初始管理员密码# 方式1容器内读取 docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword # 方式2直接读取宿主机挂载目录 cat /data/jenkins_home/secrets/initialAdminPassword填入密码 → 推荐选择安装推荐插件创建管理员账号完成初始化重点Docker 环境下 升级 Jenkins无需拷贝配置数据目录不变只更换镜像停止容器docker compose down # 或者 docker stop jenkins docker rm jenkins更新 compose 文件内image版本号为目标新版本拉取新镜像docker compose pull启动docker compose up -d✅ 原理/data/jenkins_home完整保留所有任务、凭据、构建记录启动时 jenkins 自动完成版本数据升级。⚠️ 升级前备份tar -zcvf jenkins_back_$(date %Y%m%d).tar.gz /data/jenkins_home重点Docker Jenkins 跨服务器迁移流程极简旧服务器操作# 停止jenkins docker-compose down # 打包整个数据目录 tar -zcvf jenkins_data.tar.gz /data/jenkins_home将jenkins_data.tar.gz传到新服务器新服务器操作# 解压 tar -zxvf jenkins_data.tar.gz -C / # 修复权限 chown -R 1000:1000 /data/jenkins_home在新服务器执行docker-compose up -d使用相同或更高版本镜像高频踩坑清单坑 1目录权限报错最常见日志出现 Permission denied# 永久修复命令 chown -R 1000:1000 /data/jenkins_home容器内 jenkins 用户 uid1000不要使用 root 运行 jenkins坑 2容器内无法执行 docker 命令想要宿主机 docker 构建镜像如需 Jenkins 内调用 docker 打包镜像挂载宿主机 docker.sockvolumes: - /var/run/docker.sock:/var/run/docker.sock安全提醒拥有极高权限内网环境适用。坑 3Java 版本不匹配2.357最低 JDK112.401 官方推荐 JDK17 镜像名称区分jenkins/jenkins:xxx-lts-jdk17→ jdk17jenkins/jenkins:xxx-lts-jdk11→ jdk11坑 4升级启动失败如何回滚stop 容器把镜像版本改回旧版本使用备份包还原/data/jenkins_home重新启动可选优化建议配置 Nginx 反向代理 80 端口开启 HTTPS修改 Jenkins 系统设置调整工作空间、构建保留策略防止磁盘爆满插件不要一次性全部更新分批更新避免插件兼容性崩溃定期定时备份/data/jenkins_home