📅  最后修改于: 2023-12-03 15:25:44.735000             🧑  作者: Mango
Docker 是一种流行的容器化平台,在使用过程中,经常会遇到容器启动失败,出现一些未知错误和不必要的日志。其中,Docker 容器中的未使用的图像占用了大量的磁盘空间,进而影响到系统的稳定性和性能。
为了解决这些问题,我们需要手动删除 Docker 镜像。
以下是在 Docker Shell-Bash 中手动删除未使用的图像的步骤。
运行命令 docker images
,显示当前 Docker 镜像的列表。这个命令将显示每个镜像的 ID、大小、创建时间、标签等信息。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 8c28fa415301 12 days ago 109MB
ubuntu latest 775349758637 2 weeks ago 72.8MB
redis latest c8e857232c9d 2 weeks ago 98.4MB
识别需要删除的镜像。在 Docker 中,镜像文件被修改后,会生成一个新的应用层文件。此时,原始的镜像文件将被标记为 dangling
,表示它已不再是任何运行容器的父镜像。
$ docker images -f dangling=true
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> b39b81afc8ca 4 days ago 75.3MB
<none> <none> 7b69471bd5c5 3 months ago 685MB
<none> <none> 9f5ce3997cdf 3 months ago 389MB
<none> <none> c465235f840d 4 months ago 779MB
在这个例子中,我们要删除四个 dangling
镜像文件。
运行命令 docker rmi
,删除一个或多个指定的 Docker 镜像。使用 -f
标志来强制删除未使用的图像文件。
$ docker rmi -f b39b81afc8ca 7b69471bd5c5 9f5ce3997cdf c465235f840d
Untagged: <none>:<none>
Untagged: <none>:<none>
Untagged: <none>:<none>
Untagged: <none>:<none>
Deleted: sha256:b39b81afc8ca2f593fcf8bc33558aa09645a7fbe2179eb921f8b1fde1db48d28
Deleted: sha256:7b69471bd5c57ee9e9fa8eb8e15c1a48dc7d4c1bd4cc8a27f4d812db7b73176d
Deleted: sha256:9f5ce3997cdf6c880bc6b737d6cdd3d0b49a0b0541888f699083972f0a090892
Deleted: sha256:c465235f840de623a90d9f2579fad771657bf88e907b65887749299f9bddd8c8
这里使用 -f
标志表示强制删除,即使这些镜像被某些容器使用也将其删除。
再次运行 docker images
,查看删除后的 Docker 镜像列表。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 8c28fa415301 12 days ago 109MB
ubuntu latest 775349758637 2 weeks ago 72.8MB
redis latest c8e857232c9d 2 weeks ago 98.4MB
再次检查,所有未使用的镜像应该已删除。
在 Docker 中手动删除未使用的图像文件是一项重要的维护任务。只有在不再需要它们时,才能彻底删除不需要的镜像。在完成操作后,建议再次运行 docker images
命令,以确保不会误删使用的镜像。