首页 > 解决方案 > 无法在 Windows 10 wsl 中删除 jenkins docker 旧的持久数据,

问题描述

我是 devops 技术的初学者。我在 linux 机器上有一个正在运行的 Jenkins/docker 容器,并且想转移到 Windows 10 pro 机器上。为了准备迁移,我测试了 docker 桌面并使用一些测试用户和配置成功运行了 jenkins:lts 映像。

当我尝试删除测试容器并重新创建一个新容器以便将 jenkins 实时数据移动到那里时,窗口泊坞窗继续查找测试 jenkins 容器的旧配置文件。

我已经完全删除了 docker 几次,包括所有 wsl2 相关的文件夹,还删除了 user/appdata 文件夹中的所有 docker 东西。但是当我重新创建 jenkins 容器时,它仍然能够找到一些旧的配置并向我展示。

hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")

我尝试了以下命令,但仍然无法(1)定位和(2)删除旧配置。需要注意的是,当我重新安装 docker 并且第一次构建 jenkins 容器时,\wsl$\docker-desktop-data\version-pack-data\community\docker\volumes 中没有 tmp 文件。

所以旧的 docker 配置必须在某个地方。感谢您的帮助。

docker-compose up --force-recreate -V
docker-compose down -v

我的 docker-compose 文件在这里。感谢您的帮助

version: '3.8'
services:
  jenkins:
    image: jenkins/jenkins:lts
    privileged: true
    user: root
    ports:
      - 8080:8080
      - 50000:50000
    container_name: jenkins
    volumes:
      - ~/jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  jenkins:
    driver: local

标签: windowsdockerjenkinsdocker-compose

解决方案


在您的docker-compose文件中,您创建的资源即使在删除旧的配置文件和图像后也会被缓存。删除 docker 镜像只会让你重新拉取或重新创建jenkins/jenkins:lts镜像。如果容器的配置没有改变,该--force-recreate标志只会重建容器。

但是,您需要运行docker system prune以删除未使用的资源(例如jenkins需要显式删除的卷)。这是此命令的文档。或者,您可以运行docker system prune -a --volumes以仅删除未使用的卷,保留任何其他网络或其他资源。


推荐阅读