windows - 无法在 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
解决方案
在您的docker-compose
文件中,您创建的资源即使在删除旧的配置文件和图像后也会被缓存。删除 docker 镜像只会让你重新拉取或重新创建jenkins/jenkins:lts
镜像。如果容器的配置没有改变,该--force-recreate
标志只会重建容器。
但是,您需要运行docker system prune
以删除未使用的资源(例如jenkins
需要显式删除的卷)。这是此命令的文档。或者,您可以运行docker system prune -a --volumes
以仅删除未使用的卷,保留任何其他网络或其他资源。
推荐阅读
- python-3.x - 我想在图像(隐写术)中传递加密文本,然后再次提取该加密文本,然后解密它
- javascript - 隐藏 HTML 网站中的内容而不向前端用户透露
- android - 如果我上传了具有不同签名的 apk,Google Play 商店会通知我吗?
- javascript - 试图捕获与代码无关的错误,而是诸如互联网无法正常工作的错误,我该怎么做?
- ruby-on-rails - ruby unicorn 作为 docker 中的服务 - 使用错误的 rake
- python - python-pptx画一条竖线
- javascript - 如何使用带有 TypeScript 的 keyof 访问器定义返回类型?
- openstack - 找qcow2c磁盘镜像格式的文档
- bootstrap-4 - 我在哪里可以获得 Boostrap Collapse 插件,如何设置它?
- c# - 来自 Nullable 或可选 c# 成员的打字机可选成员