必须先停止再删除容器,且删除不可逆;docker stop发送SIGTERM优雅终止,超时后发SIGKILL;docker rm仅删已停止容器,-f强制删除,-v清理匿名卷;批量操作需用$(docker ps -q)等筛选ID,配合管道与&&确保安全顺序。
管道符(|)是 shell 的核心能力,docker 命令配合管道能跳过手动查 id、复制粘贴等低效环节,把多步操作压缩成一条命令。关键在于:**前一个命令输出容器或镜像 id,后一个命令接收并执行动作**。
快速停止并删除所有运行中容器
适用于开发环境重置、CI 流程清理:
-
docker stop $(docker ps -q)—— 先获取所有运行中容器 ID,再逐个发送 SIGTERM 停止 -
docker rm $(docker ps -aq)——-aq列出全部容器 ID(含已退出),直接批量删除 - 合并为一条:
docker stop $(docker ps -q) && docker rm $(docker ps -aq)(注意用&&保证顺序)
精准清理特定状态的 exited 容器
避免误删正在运行的服务,只处理真正无用的残留:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
-
docker ps -a -f status=exited -q—— 只输出状态为 exited 的容器 ID -
docker rm $(docker ps -a -f status=exited -q)—— 将其全部删除 - 加
|| true防止无匹配时报错:docker rm $(docker ps -a -f status=exited -q) || true
一键清理悬空镜像 + 未使用镜像
释放磁盘空间最常被忽略的组合:
-
docker images -f dangling=true -q—— 找出没有标签的悬空镜像 ID -
docker rmi $(docker images -f dangling=true -q)—— 强制删除它们 - 再清理所有未被任何容器引用的镜像:
docker image prune -f(不依赖管道,但常与上条连用)
容器内文件批量导出到主机
比 docker cp 更灵活,支持权限保留和目录结构:
- 从容器 /app 目录打包并解压到当前主机路径:
docker exec myapp tar Ccf /app - | tar Cxf ./app-backup - - 反向导入(主机 → 容器):
tar Ccf ./data - | docker exec -i myapp tar Cxf /tmp/ - 原理:利用
tar在容器内生成流式归档,通过管道交给主机端tar解压

















