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

WSL中Docker Jenkins卷在Windows重启后重置问题求助

问题分析与解决方案

核心问题原因

Windows重启后Jenkins配置丢失,是因为你使用了WSL绑定挂载路径/var/jenkins_home,该路径在Windows重启时可能因WSL会话重置、Docker Desktop的WSL集成机制问题,导致数据未被持久化保留;而容器重启时WSL会话未中断,所以数据能正常保留。

解决方案

1. 改用Docker命名卷(最可靠的方案)

Docker命名卷由Docker统一管理,存储在Windows本地的持久化目录中,不会因Windows/WSL重启丢失数据。修改启动命令:

docker run -u 0 -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock --name jenkins -d jenkins-docker
  • 替换点:将-v /var/jenkins_home:/var/jenkins_home改为-v jenkins_home:/var/jenkins_home,jenkins_home是自定义的卷名。
  • 验证:创建容器后完成初始化,重启Windows后再次启动容器,配置会正常保留。

2. 简化你的Dockerfile(优化冗余步骤)

原Dockerfile中在容器内安装Docker完全冗余——你已经通过挂载/var/run/docker.sock让Jenkins直接使用宿主(WSL/Docker Desktop)的Docker引擎,无需在容器内重复安装。简化后的Dockerfile:

# Use the Jenkins LTS image as the base image
FROM jenkins/jenkins:lts

USER root

# 仅需将jenkins用户加入docker组,适配宿主的Docker权限
RUN usermod -aG docker jenkins

USER jenkins
  • 移除了安装Docker的所有步骤,减少镜像体积,避免权限冲突。

3. 检查WSL持久化配置(可选)

如果坚持使用绑定挂载,需确保WSL发行版的文件系统是持久化的:

  • 在Windows用户目录下创建或编辑.wslconfig文件,添加以下配置:
    [wsl2]
    filesystem=ext4
    
  • 确保你挂载的/var/jenkins_home位于WSL的持久化分区(而非临时内存分区),部分WSL发行版的/var默认是持久化的,但需确认。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 11:12:50