DevSpace cleanup 命令完全指南:清理本地 Docker 镜像与集群内本地镜像仓库
云原生开发工具DevOps容器编排【免费下载链接】devspaceDevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.项目地址https://gitcode.com/gh_mirrors/dev/devspace点击查看免费下载DevSpace 的devspace cleanup命令是一组用于清理开发资源的工具命令它由两个子命令组成devspace cleanup images负责删除构建过程中在本地 Docker 中生成的镜像devspace cleanup local-registry负责删除部署在 Kubernetes 集群内的本地镜像仓库local registry。本文围绕这两个子命令逐一说明命令语法、全部参数语义、底层执行流程与关键源码逻辑并给出可直接复制的实战用法。命令概览devspace cleanup是 DevSpace 顶层命令devspace下的一个分组命令本身不执行具体清理动作仅用于聚合其子命令。在命令实现中它通过 cmd/cleanup/cleanup.go 中的NewCleanupCmd注册了两个子命令并预留了插件扩展能力devspace cleanup images删除所有本地创建的 Docker 镜像devspace cleanup local-registry删除集群中的本地镜像仓库。从源码结构看命令还通过plugin.AddPluginCommands(cleanupCmd, plugins, cleanup)为第三方插件提供挂载入口因此用户也可以为cleanup组注册自定义的清理子命令。命令帮助信息与基础用法两个子命令都不接受位置参数Args: cobra.NoArgs用法格式均为devspace cleanup subcommand [flags]devspace cleanup images [flags] devspace cleanup local-registry [flags]子命令自身的 Flags两个子命令均只声明了一个自身 Flags-h, --help help for cleanup / images / local-registry即-h/--help用于查看命令帮助。其余大量配置均来自 DevSpace 的全局与继承 FlagsGlobal Inherited Flags这些 Flags 在每个子命令上都可用。全局与继承 Flags 详解以下 Flags 由根命令与全局配置层提供应用于cleanup及其所有子命令Flag类型说明--debugbool出错时打印堆栈追踪信息便于定位问题--disable-profile-activationbool为true时忽略所有 profile 激活--inactivity-timeout intint用户在无鼠标/键盘交互的指定分钟数后自动退出 DevSpace0表示禁用仅 Windows 和 macOS 支持--kube-context stringstring指定要使用的 Kubernetes context--kubeconfig stringstring指定要使用的 kubeconfig 路径-n, --namespace stringstring指定要使用的 Kubernetes namespace--no-colorsbool关闭日志输出中的颜色高亮避免在不同终端背景色下出现不可见输出--no-warnbool为true时当部署到与之前不同的 namespace 或 kube-context 时不显示警告--override-name stringstring覆盖devspace.yaml中提供的 DevSpace 项目名称-p, --profile stringsstring 数组要应用的 DevSpace profiles多个 profile 按指定顺序依次应用--silentbool静默模式除 panic 与 fatal 外不输出任何 devspace 日志-s, --switch-contextbool切换并使用上次部署 DevSpace 项目所用的 kube context 和 namespace--var stringsstring 数组在执行期间覆盖变量例如--varMYVARMYVALUE在实际使用中最常配合cleanup命令使用的是--kube-context、--namespace与--profile等 Flag它们决定了命令作用于哪个集群、命名空间以及加载哪份配置。devspace cleanup images清理本地 Docker 镜像命令行为说明devspace cleanup images用于删除 DevSpace 在构建过程中创建的本地 Docker 镜像其完整帮助描述为Deletes all locally created docker images from docker。它并不删除集群中的任何资源只针对本机 Docker 守护进程执行清理。底层执行流程根据 cmd/cleanup/images.go 中的RunCleanupImages实现命令的执行步骤如下加载配置根目录通过configLoader.SetDevSpaceRoot(log)定位devspace.yaml所在的项目根目录若找不到配置文件命令直接返回message.ConfigNotFound错误并终止。创建 Kubernetes 客户端调用f.NewKubeClientFromContext(cmd.KubeContext, cmd.Namespace)基于当前 kube-context 与 namespace 创建客户端用于后续与 minikube 的 Docker 环境交互。创建 Docker 客户端调用docker.NewClientWithMinikube(ctx, kubeClient, true, log)优先尝试从 minikube 的 Docker 环境创建客户端preferMinikubetrue失败时回退到本机 Docker 环境变量。对应实现位于 pkg/devspace/docker/client.go。加载完整配置通过configLoader.Load(...)加载配置若配置中的config.Images为空则输出No images found in config to delete并直接结束。校验 Docker 可用性调用client.Ping(ctx)如果 Docker 未运行则报错Docker seems to be not running。逐个删除镜像遍历config.Images中的每个镜像配置调用client.DeleteImageByName(ctx, imageConfig.Image, log)删除对应镜像。删除悬空镜像反复调用client.DeleteImageByFilter(ctx, filters.NewArgs(filters.Arg(dangling, true)), log)删除 dangling悬空镜像直到没有可删除的条目为止。镜像删除的底层实现在 pkg/devspace/docker/images.go 中两个删除方法的实现如下DeleteImageByName会将镜像名去掉首尾空白后转换为reference过滤器再调用DeleteImageByFilterDeleteImageByFilter先用ImageList按过滤器列出镜像再逐个以PruneChildren: true, Force: true的选项调用ImageRemove收集每个镜像的删除/取消标签Deleted/Untagged响应。因此在devspace cleanup images的执行日志中你可以看到形如Deleted 镜像 ID与Untagged 镜像名的两类输出分别代表镜像被彻底删除或只是某个标签被移除而镜像仍被其他标签引用。实战用法示例# 清理当前项目在本地 Docker 中创建的所有镜像 devspace cleanup images # 指定 kube-context 与 namespace用于 minikube/多集群场景 devspace cleanup images --kube-context minikube --namespace myproject # 清理时应用 devspace.yaml 中的某个 profile devspace cleanup images -p production # 使用静默模式执行清理 devspace cleanup images --silent需要注意的是该命令只会删除devspace.yaml的images段中声明过的镜像以及清理过程中产生的悬空镜像不会动到本机 Docker 中的其他镜像。devspace cleanup local-registry删除集群内的本地镜像仓库命令行为说明devspace cleanup local-registry用于删除部署在 Kubernetes 集群内的本地镜像仓库local registry。其完整帮助描述为Deletes the local image registry。该本地仓库是 DevSpace 在目标集群没有镜像推送权限且无法使用kind load docker-image时自动部署到集群中的私有 registry用于中转构建产物。本地镜像仓库的部署形态根据 docs/pages/configuration/localRegistry/README.mdx 与 pkg/devspace/build/localregistry 的源码默认不启用持久化时本地仓库由DeploymentemptyDir卷承载镜像数据在重启后会丢失启用persistence.enabled: true后改用StatefulSet PVC 承载相关实现见 statefulset.go仓库默认名称为registry镜像为registry:2.8.1BuildKit 侧车镜像为moby/buildkit:master-rootless监听端口为5000见 options.go 中的默认值常量仓库通过 NodePort Service 暴露DevSpace 会把所有镜像 URL 透明改写为localhost:[NODE_PORT]形式见 local_registry.go 中的Start与RewriteImage实现。devspace cleanup local-registry正是用来回收这些集群内资源StatefulSet/Deployment 与 Service的命令。底层执行流程根据 cmd/cleanup/local_registry.go 中的RunCleanupLocalRegistry实现命令的执行步骤如下定位项目根目录调用configLoader.SetDevSpaceRoot(log)若不存在devspace.yaml则返回message.ConfigNotFound。创建 kubectl 客户端调用f.NewKubeClientFromContext(...)创建客户端如果创建失败如 kube-context 不可用命令会打印警告并将客户端置为nil不会直接中止。加载本地缓存调用configLoader.LoadLocalCache()获取本地缓存随后通过kubectl.CheckKubeContext(...)检查当前 kube-context/namespace 与上次部署是否一致必要时显示警告或按--switch-context切换。组装清理选项基于配置中的config.LocalRegistry段构造localregistry.OptionsWithNamespace、WithLocalRegistryConfig其默认值与字段映射见 options.go。探测目标资源分别尝试获取同名的 StatefulSet、Deployment 与 Service资源名默认registry。若三者都不存在输出No local registry found.并结束。危险操作确认由于删除仓库会连带删除其中存储的所有镜像命令会弹出确认问题This will delete your local registry and all the images it contains. Do you wish to continue?选项为Yes/No选择No则直接退出。执行删除按顺序删除存在的 StatefulSet、Deployment 与 Service最后输出Successfully cleaned up local registry。从源码可以看到该子命令对“删除数据”这一破坏性操作做了双重保护先探测资源是否存在避免误删无关资源再要求用户显式确认。与 localRegistry 配置的关联cleanup local-registry删除的是由devspace.yaml中localRegistry配置段创建的资源。该配置段的可选项及其默认值如下字段定义见 pkg/devspace/config/versions/latest/schema.go 中的LocalRegistryConfig字段类型默认值说明enabledbooleanfalse未设置时作为无推送权限时的回退方案true时始终使用本地仓库false时永不使用localbuildbooleanfalse是否使用本地 docker builder 替代集群内构建namespacestring当前 context 的 namespace本地仓库部署的命名空间namestringregistry本地仓库 Deployment/Service 的名称imagestringregistry:2.8.1本地仓库镜像buildKitImagestringmoby/buildkit:master-rootlessBuildKit 侧车镜像portinteger5000registry 镜像监听端口persistence.enabledbooleanfalse是否启用持久化true时使用 StatefulSet PVCpersistence.sizestring5Gi持久卷大小persistence.storageClassNamestring集群默认 StorageClass持久卷的存储类因此devspace cleanup local-registry会按照localRegistry配置中的namespace与name默认registry去查找并删除集群内资源清理对象与配置严格对应。实战用法示例# 清理当前集群中由 DevSpace 创建的本地镜像仓库 devspace cleanup local-registry # 清理前先指定正确的 kube-context 与 namespace devspace cleanup local-registry --kube-context mycluster --namespace myproject # 不希望看到 kube-context/namespace 切换警告时使用 devspace cleanup local-registry --no-warn # 使用上次部署时的 context 与 namespace devspace cleanup local-registry --switch-context由于该命令会删除仓库内全部镜像且无法恢复建议在执行前确认目标集群与命名空间无误。常见问题与注意事项1.devspace cleanup images报 “Docker seems to be not running”说明本地 Docker 守护进程或 minikube 的 Docker 环境不可用。请先启动 Docker或在 minikube 场景下确认--kube-context minikube指向正确。2.devspace cleanup找不到devspace.yaml两个子命令在执行前都会调用SetDevSpaceRoot定位项目根目录因此必须在包含devspace.yaml的项目目录中执行或在devspace.yaml所在目录下运行。3.devspace cleanup local-registry不会删除 namespace 本身从实现看命令只删除 StatefulSet、Deployment 与 Service 这三种资源不会删除它们所在的 namespace。4.images子命令只清理本项目声明的镜像它遍历的是devspace.yaml的images段而非本机全部镜像悬空镜像的清理则通过danglingtrue过滤器完成。5. 关于本地仓库数据安全未启用持久化的本地仓库使用emptyDir重启即丢失数据启用持久化后数据保存在 PVC 中cleanup local-registry删除 StatefulSet 时相关 PVC 及其数据会一并被清理务必确认确认提示后再操作。小结devspace cleanup为 DevSpace 开发工作流提供了两条资源回收路径cleanup images面向本机 Docker 守护进程按项目声明的镜像与悬空镜像维度清理cleanup local-registry面向集群按localRegistry配置删除 DevSpace 自动部署的本地镜像仓库。结合其全局 Flags如--kube-context、--namespace、--no-warn、--switch-context可以精确控制在多集群、多命名空间环境下的清理范围。如果需要深入源码可以继续阅读 cmd/cleanup/cleanup.go、cmd/cleanup/images.go、cmd/cleanup/local_registry.go以及镜像删除实现 pkg/devspace/docker/images.go 和本地仓库实现 pkg/devspace/build/localregistry/local_registry.go。赞分享云原生开发工具DevOps容器编排【免费下载链接】devspaceDevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.项目地址https://gitcode.com/gh_mirrors/dev/devspace点击查看免费下载相关推荐DevSpace cleanup 命令全解析本地 Docker 镜像与集群内本地镜像仓库的清理实战DevSpace cleanup 命令全解析本地 Docker 镜像与集群内本地镜像仓库的清理实战 导读 DevSpace 的 devspace cleanu云原生开发工具DevOps容器编排DevSpace 清理本地 Docker 镜像devspace cleanup images 命令完整指南DevSpace 清理本地 Docker 镜像 devspace cleanup images 命令完整指南 devspace cleanup images云原生开发工具DevOps容器编排DevSpace cleanup local-registry 命令详解删除 Kubernetes 集群内本地镜像仓库的完整指南DevSpace cleanup local registry 命令详解删除 Kubernetes 集群内本地镜像仓库的完整指南 导读 devspace cl云原生开发工具DevOps容器编排创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

astron-agent Spark Link 插件测试套件解析:从 pytest 配置、Mock 夹具到 80% 覆盖率门槛

astron-agent Spark Link 插件测试套件解析:从 pytest 配置、Mock 夹具到 80% 覆盖率门槛

人工智能AI AgentAgent 工作流RPA后端前端工具调用 【免费下载链接】astron-agent An enterprise-ready AI agent development platform combining intelligent RPA, enabling agents to not only think but also act—automating workflows across digital and desktop enviro…

2026/10/13 12:53:05 阅读更多 →
火电-储能混合调频系统控制策略与工程实践

火电-储能混合调频系统控制策略与工程实践

1. 储能辅助火电机组二次调频的背景与挑战在新能源占比不断提升的电力系统中,频率稳定性问题日益突出。传统火电机组作为主力调频电源,其固有的机械特性导致调频响应存在明显滞后——从频率偏差出现到机组出力调整完成往往需要数分钟时间。这种延迟在应对…

2026/10/13 12:53:04 阅读更多 →
软件设计说明书模板:从流水账到高价值可评审文档

软件设计说明书模板:从流水账到高价值可评审文档

简介:面向软件设计人员,这份文档提供了一套完整的软件设计说明书模板与案例,覆盖需求描述、第一层系统结构设计、第二层模块结构设计、数据库设计、组件视图、进程视图及模块详细设计等章节,并配有修订记录与目录结构。模板基于Ro…

2026/10/13 12:52:00 阅读更多 →

最新新闻

机器学习入门四大实战项目:手写数字识别、声呐分类、垃圾短信识别与鸢尾花分类

机器学习入门四大实战项目:手写数字识别、声呐分类、垃圾短信识别与鸢尾花分类

简介:这份资源面向零基础或刚接触机器学习的小白学习者,围绕四个经典入门项目展开:手写数字识别、声呐目标分类、垃圾短信识别与鸢尾花分类,帮助读者在动手实践中理解分类任务的完整流程与常见算法思路。压缩包共13个文件&#xf…

2026/10/13 13:35:16 阅读更多 →
贪吃蛇AI实战:从状态编码到DQN训练,避开绕圈与撞墙的坑

贪吃蛇AI实战:从状态编码到DQN训练,避开绕圈与撞墙的坑

简介:这份资源是一套用 C/C 编写的贪吃蛇游戏人工智能实现,面向对游戏 AI、路径搜索与强化学习感兴趣的开发者与学习者,帮助理解如何让蛇在自动寻路中尽可能吃满整张地图。压缩包共 57 个文件,以 34 个 Python 源码为主&#xff0…

2026/10/13 13:35:16 阅读更多 →
GDAL 2.3.1 Windows预编译包使用指南:环境配置、格式转换与避坑实践

GDAL 2.3.1 Windows预编译包使用指南:环境配置、格式转换与避坑实践

简介:本资源为自行编译的 GDAL 2.3.1 Windows 64 位版本压缩包,面向从事 GIS、遥感影像处理与空间数据转换的开发者及研究人员。GDAL 是支持 GeoTIFF、JPEG、HDF4、HDF5、ECW、MrSID 等多种栅格与矢量格式的开源地理空间库,自行编译便于按需选…

2026/10/13 13:35:16 阅读更多 →
内网自建Git服务实战:CentOS 8 + Apache HTTP协议搭建轻量代码托管

内网自建Git服务实战:CentOS 8 + Apache HTTP协议搭建轻量代码托管

1. 为什么要在内网自建 Git 服务1.1 从一次代码托管迁移说起前段时间帮一个做嵌入式开发的小团队整理代码仓库,他们之前一直把代码放在公共托管平台上,项目本身不涉及什么敏感内容,但问题是每次拉取和推送都要走外网,办公室的网络…

2026/10/13 13:35:16 阅读更多 →
MySQL分区表详解:从原理到实操,一次讲透分区裁剪与选型

MySQL分区表详解:从原理到实操,一次讲透分区裁剪与选型

MySQL 分区表这功能,早年在社区里的评价一直两极分化。一边是"一张大表拆成小表,查询快到飞起"的爽文故事,另一边是"分区表性能还不如普通表、坑多得防不胜防"的劝退帖。两种说法我都见过,自己也踩过不少。做…

2026/10/13 13:35:16 阅读更多 →
数据结构期末试卷拆解:高频考点与手写算法提分策略

数据结构期末试卷拆解:高频考点与手写算法提分策略

简介:湖北大学《数据结构》2022—2023学年第一学期期末试卷(A卷),面向计算机相关专业本科生,适合期末复习、考研自测及教学参考。试卷为闭卷考试,覆盖判断分析题、简答题与应用分析题,重点涉及带…

2026/10/13 13:34:15 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →