【问题标题】:Cannot delete jenkins docker old persistent data in windows 10 wsl,无法在 windows 10 wsl 中删除 jenkins docker 旧的持久数据,
【发布时间】:2021-02-23 15:41:40
【问题描述】:

我是 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

【问题讨论】:

  • 删除后是否也删除了自己创建的Docker资源?比如docker system prune?
  • @tentative 不,我没有,在阅读您的评论后尝试过,它有效。非常感谢!
  • 我希望你不介意,我添加了更多关于为什么在答案中起作用的解释。很高兴它解决了您的问题!

标签: windows docker jenkins docker-compose


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-12-30
    • 2018-09-30
    • 2021-03-10
    • 2019-06-21
    • 2021-05-19
    • 2021-01-15
    • 2018-05-01
    • 1970-01-01
    • 2012-03-24
    相关资源
    最近更新 更多