Featured image of post Docker 如何查看和删除没用的image

Docker 如何查看和删除没用的image

这篇博文记录了在Docker里如何查看和删除没有使用的image。

众所周知,docker随着使用的时间越来越长,可能会出现很多没有用的镜像文件,而这些镜像文件一般都很占磁盘空间,所以就需要有个方法能够清理这些无用的镜像文件,下面就是一些实用的方法。

如何查看docker中的没有用的镜像

要查看Docker中没有用的镜像,可以使用以下方法:

  1. 列出所有镜像并查看状态:
docker images

这将列出所有镜像,其中:表示这些镜像没有被任何容器引用,可以视为没用的镜像。

  1. 查找悬挂(dangling)镜像:
docker images -f dangling=true

这将只列出没有被任何容器引用的镜像,即悬挂镜像。

  1. 使用脚本查找未使用镜像:
bash
#!/bin/bash
# 获取所有正在运行的容器ID
running_containers=$(docker ps -q)

# 获取所有镜像列表
all_images=$(docker images --format "{{.Repository}}:{{.Tag}}")

# 遍历每个镜像,检查是否被容器使用
for image in $all_images; do
  # 检查该镜像是否被任何容器使用
  if [[ -z $(docker ps -q --filter "ancestor=$image") ]]; then
    # 检查该镜像是否为正在运行的容器使用的基础镜像
    if ! grep -q "$image" <<< "$running_containers"; then
      echo "未使用的镜像: $image"
    fi
  fi
done

这个脚本会列出所有未被任何容器使用的镜像。

通过上述方法,可以清晰地查看到Docker中哪些镜像是没有用的,从而决定是否删除它们以释放磁盘空间。删除没用镜像的命令是:

docker image prune。

如何删除没用的image

要删除Docker中没用的镜像,可以使用以下几种方式:

  1. 删除所有悬挂(dangling)镜像:
docker image prune

这将删除所有未被任何容器引用的镜像。

  1. 删除所有未使用的镜像:
docker image prune -a

这将删除所有未被任何容器引用的镜像,包括中间层镜像。

  1. 删除指定镜像:
docker rmi <IMAGE_ID>

可以通过docker images命令获取镜像ID,然后使用docker rmi命令删除指定镜像。

  1. 删除所有镜像:
docker rmi $(docker images -q)

这将删除本地所有镜像。

  1. 使用过滤器删除镜像:
docker image prune -a --filter="until=24h"

这将删除创建时间超过24小时的所有未使用镜像。可以根据需要调整过滤条件。

总之,docker image prune命令是删除未使用镜像的推荐方式,可以根据需要添加-a选项和过滤器。如果要删除指定镜像,可以使用docker rmi命令。

GPT先锋,引领未来
Built with Hugo
Theme Stack designed by Jimmy