如何删除 Docker 镜像?

如果您已经使用 Docker 很长时间了,您的本地机器中可能已经存在多个未使用的镜像。这些图像可能是以前下载的旧版本,或者只是您下载用于测试的图像。这些图像不必要地占用了大量空间并降低了整体性能和体验。此外,它们也是几个未使用的悬空图像。

最好删除这些旧图像,这将有助于您以更好的方式跟踪所有有用的图像。Docker 允许您通过许多不同的命令非常轻松地删除图像。您可以使用 Docker rmi 命令、Docker images rm 命令,甚至 Docker image prune 命令来执行此操作。此外,Docker 允许您使用多个选项以及这些命令来战略性地删除图像。

在本文中,我们将讨论所有流行和最常用的命令,这些命令可以让您轻松删除图像。

删除 Docker 镜像

如前所述,有几个命令可以互换使用,以从系统中删除一个或多个 Docker 映像。让我们从最基础的开始。

$ docker image rm [OPTIONS] IMAGE [IMAGE...]

您还可以将多个选项与此命令一起使用。下面是最有用的。

  • --force - 您可以使用此选项强制删除图像。

  • --no-prune - 如果您不想删除未标记的图像,可以使用此选项。

请注意,您只能删除那些没有关联容器的图像。如果您尝试删除此类图像,则会引发错误。要覆盖此默认行为,您可以使用 --force 选项强制删除图像。

例如,如果您想删除标签为 24 的 Fedora 镜像,您可以使用以下命令来执行此操作。

$ docker image rm fedora:24

要检查图像是否有与其关联的容器,您可以使用以下两个命令之一列出所有容器。

$ docker ps -a

$ docker container ls -a

如果您发现任何与该映像关联的容器,您可以停止并删除该容器或强行删除它。

$ docker stop <container-name>

$ docker rm <container-name>

要么

$ docker rm -f <container-name>

移除容器后,您现在可以继续删除图像。

使用较短的命令删除图像

您还可以使用下面提到的其他较短的命令来删除图像。

$ docker rmi [OPTIONS] IMAGE [IMAGE...]

如果您不想在删除映像之前检查容器,可以使用 force 选项将其删除。

$ docker rmi -f <image-name>

另外,如果您想一起删除多个图像,您可以直接提及所有这些图像的图像 ID 或图像名称,以空格分隔。

$ docker rmi -f myimage1 myimage2 myimage2

通过修剪来删除图像

您还可以使用 Docker image prune 命令删除所有悬空镜像。

$ docker image prune [OPTIONS]

您可以使用多个选项,例如 -

  • --all - 删除所有未使用和悬空的图像。

  • --filter - 提供过滤器以仅删除某些特定图像。

  • --force - 强制修剪图像。

例如,如果要从系统中删除所有未使用的映像,可以使用以下命令。

$ docker image prune --all

如果你想一起删除所有 Docker 镜像,这是一个很好的方法。还有另一种方法可以同时删除所有图像。您可以将子命令与 Docker rmi 命令一起使用。考虑下面的命令。

$ docker rmi -f $(docker images -aq)

在这里,我们将 force 选项与 Docker rmi 命令一起用作父命令。我们没有提及图像 ID 或名称,而是使用了一个子命令,该命令使用 all 和 quiet 选项列出所有图像的图像 ID。

总而言之,在本文中,我们讨论了为什么定期删除未使用或悬空的图像是一个好习惯。我们讨论了如何使用三个不同的命令以及几个选项来删除图像。我们还讨论了如何同时删除多张或所有图像。我们希望您现在能够非常轻松地删除 Docker 镜像。

猜你喜欢