Docker 是一个开源容器化平台,可让我们快速构建、测试和部署应用程序作为可在任何地方运行的便携式容器。
在这个快速教程中,我们将展示如何删除 Docker 中所有悬空、未标记和未使用的图像。
此外,如何通过 ID 或者使用过滤器删除一个或者多个图像。
删除 Docker 镜像
删除一个或者多个镜像
要删除一个或者多个 Docker 镜像,请使用 docker images ls
命令来查找要删除的镜像的 ID。
$docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 15835a67d134 7 days ago 200MB ubuntu latest 3a4cca5ac898 2 months ago 111MB java 8-jre e44d62cf8862 2 months ago 311MB
找到要删除的图像后,请使用 rm
命令后跟 IMAGE ID 。
例如,要删除上面输出中列出的前两个图像,请运行:
$docker image rm 15835a67d134 3a4cca5ac898
如果我们收到类似于下图所示的错误,则表示现有容器正在使用该镜像。
要删除图像,我们必须先删除容器。
Error response from daemon: conflict: unable to remove repository reference "ubuntu" (must force) - container bd20b396a061 is using its referenced image 3a4cca5ac898
删除悬空图像
悬空图像是未标记且未被任何容器使用的图像。
要删除悬空图像和未使用的图像,请运行以下命令:
$docker image prune
系统会提示我们继续,使用 -f
或者 --force
标志绕过提示。
WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y
删除悬空图像时,如果我们构建的图像没有标记,它们也会被删除。
删除所有未使用的图像
要删除任何现有容器未引用的所有图像,而不仅仅是悬空的图像,请使用带有 -a
标志的 prune
命令:
% docker image prune -a WARNING! This will remove all images without at least one container associated to them. Are you sure you want to continue? [y/N] y
使用过滤器删除图像
使用 docker image prune
命令,我们还可以使用过滤标志 --filter
根据特定条件删除图像。
当前支持的过滤器是 until
和 label
。
我们可以通过使用多个 --filter
标志来使用多个过滤器。
例如,要删除超过 24 小时前创建的所有图像,请运行以下命令:
$docker image prune -a --filter "until=24h"
日期:2020-06-02 22:18:45 来源:oir作者:oir