down 之后核对残留
compose down 默认删除项目里的容器与网络,但命名卷与镜像不会跟着走,外部引用的资源更是完全不管。清理完要按项目标签反查一遍:容器、网络、卷都能用 com.docker.compose.project 标签筛出来,逐个确认没有遗漏,才能避免端口、IP 段与磁盘被长期占用。
基本信息
| 反查标签 | com.docker.compose.project=<项目名> |
|---|---|
| 核对对象 | 容器 / 网络 / 卷三类分别反查 |
| 命令形式 | docker ps -a --filter label=… 等 |
| 边角情况 | external 资源与孤儿容器不会被自动清理 |
典型使用场景
- 项目下线收尾:确认容器、网络、卷都没有残留
- 磁盘回收:定位到具体项目名再决定删哪些卷
- 端口与网段释放:残留网络会占用子网,影响后续项目创建
- 变更前备份:清理卷之前确认数据是否需要先导出
- 多环境共存核对:一台机器上多个项目的标签比对,避免误删
逐类反查
逐类反查
# 先看有哪些项目
docker compose ls -a
# 按项目标签反查容器
docker ps -a --filter label=com.docker.compose.project=shop
# 反查网络与卷
docker network ls --filter label=com.docker.compose.project=shop
docker volume ls --filter label=com.docker.compose.project=shop
# 需要连卷一起删时执行
docker compose down -v
# 连同本地构建的镜像一起删
docker compose down --rmi localdown 参数对照
| 参数 | 作用 | 注意 |
|---|---|---|
| down | 停止并删除容器与网络 | 不动卷与镜像 |
| down -v | 同时删除项目命名卷 | 数据删除后无法从容器侧恢复 |
| down --rmi local | 删除本地构建的镜像 | 不影响从仓库拉取的镜像 |
| down --remove-orphans | 清掉同项目但不在编排文件里的容器 | 只作用于本项目标签的容器 |
external 声明的网络与卷不随项目删除,这是设计行为,不要误判成清理失败。
卷清理是单向操作,删之前确认数据是否需要保留或导出,容器侧没有可用的恢复路径。
清理顺序建议先容器、再网络、最后卷:容器还在时卷无法删除,先删容器能避免一半的报错;核对完成后再把项目的编排文件目录归档或删除,保证下次不会误启动。