You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何升级Docker容器中运行的Jenkins且不丢失数据?

Jenkins容器升级保留配置的解决方案

核心思路:通过数据持久化保留Jenkins配置

Jenkins的所有任务、插件、配置都存储在容器内的/var/jenkins_home目录,只要把这个目录的内容持久化到宿主机或Docker数据卷,升级时复用即可。


情况1:之前未做数据持久化(旧容器直接运行)

  1. 停止旧容器
    docker stop <旧容器ID/名称>
    
  2. 导出旧容器的Jenkins数据到宿主机
    docker cp <旧容器ID/名称>:/var/jenkins_home ./jenkins-backup
    
  3. 创建Docker数据卷(推荐)或准备宿主机目录
    • 创建数据卷:
      docker volume create jenkins-data
      
    • 将备份数据导入数据卷(借助临时busybox容器完成拷贝):
      docker run --rm -v jenkins-data:/var/jenkins_home -v $(pwd)/jenkins-backup:/backup busybox cp -r /backup/. /var/jenkins_home/
      
  4. 拉取最新Jenkins镜像
    docker pull jenkins/jenkins:lts  # 优先选择稳定版,也可使用latest标签
    
  5. 启动新容器并挂载数据卷
    docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins-new jenkins/jenkins:lts
    

情况2:之前已挂载宿主机目录或数据卷

直接复用已有的持久化存储即可,步骤更简洁:

  1. 停止旧容器
    docker stop <旧容器ID/名称>
    
  2. 拉取最新镜像
    docker pull jenkins/jenkins:lts
    
  3. 删除旧容器(可选,清理无用容器)
    docker rm <旧容器ID/名称>
    
  4. 启动新容器,复用原有挂载
    如果是挂载宿主机目录:
    docker run -d -p 8080:8080 -p 50000:50000 -v /path/to/your/jenkins_home:/var/jenkins_home --name jenkins jenkins/jenkins:lts
    
    如果是使用数据卷:
    docker run -d -p 8080:8080 -p 50000:50000 -v jenkins-data:/var/jenkins_home --name jenkins jenkins/jenkins:lts
    

注意事项

  • 升级前务必备份jenkins_home目录,避免意外数据丢失
  • 启动新容器后,可能需要在Jenkins后台升级插件(新版本Jenkins可能要求插件兼容)
  • 若使用自定义Jenkins镜像(比如预装插件),需基于最新官方镜像重新构建自定义镜像,保留原有定制内容

内容的提问来源于stack exchange,提问作者jaqen_hgar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 21:32:05