清除 docker 无用的 镜像/容器

清除 docker 无用的 镜像/容器

删除 <none> 的 docker 镜像

使用以下命令删除所有 的 Docker 镜像(即悬空镜像 / dangling images):

docker image prune -f

这会自动删除所有没有 tag 的镜像(),不会影响有名称或 tag 的镜像。

如果有没删除的, 表示有关联. 例如有容器在使用.

删除停止运行的 docker 容器

使用下面的命令删除所有状态为 Exited 的容器:

docker rm $(docker ps -a -f status=exited -q)

说明:

  • docker ps -a:列出所有容器(包括停止的)
  • -f status=exited:只过滤出已退出的容器
  • -q:只输出容器 ID
  • docker rm:删除这些容器

如果有没有删除的, 表示有关联的容器.

### 如何在 Linux 中清除 Docker无用镜像 在 Linux 系统中,可以通过多种方式来清理 Docker无用镜像。这些方法主要依赖于 `docker` 命令及其子命令,例如 `docker image prune` 和 `docker rmi`。 #### 使用 `docker image prune` 清理悬挂镜像 执行以下命令可以清理掉那些没有标签并且未被任何容器引用的悬挂镜像: ```bash docker image prune ``` 此命令默认只清理悬挂镜像[^3]。如果希望强制删除而无需确认,则可加上 `-f` 参数: ```bash docker image prune -f ``` #### 扩展清理范围至所有未使用的镜像 为了进一步扩展清理范围到所有未被活跃容器使用的镜像(不仅仅是悬挂镜像),可以使用带有参数 `--all` 或 `-a` 的 `prune` 子命令: ```bash docker image prune --all ``` 或者更简洁的形式: ```bash docker image prune -a ``` 这会移除所有未被当前运行或停止状态下的容器所引用的镜像[^4]。 #### 列出并手动删除特定镜像 有时可能需要先查看哪些镜像是多余的再决定是否要删除它们。通过下面这条指令可以获得所有标记为“dangling”的镜像ID列表: ```bash docker images -qf "dangling=true" ``` 之后利用获取到的结果批量删除这些不需要的镜像: ```bash docker rmi $(docker images -qf "dangling=true") ``` 这里需要注意的是,在尝试删除某个正在被某容器使用的镜像时可能会失败,并收到错误提示;因此建议在此之前确保目标镜像确实处于闲置状态[^1]。 #### 综合脚本实现自动化管理 对于追求效率的朋友来说,也可以编写一个小脚本来完成整个过程。比如创建名为cleanup_docker_images.sh文件内容如下所示: ```bash #!/bin/bash echo "Removing all dangling images..." docker image prune -f &>/dev/null if [ $? != 0 ];then echo "[ERROR] Failed to remove dangling images." else echo "All dangling images have been removed successfully." read -p "Do you want also delete ALL unused images? (y/n): " choice case "$choice" in y|Y ) docker image prune -af ;; n|N ) exit 0;; * ) echo "Invalid input...";; esac fi ``` 赋予该脚本执行权限后即可方便快捷地操作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值