📜  手动删除未使用的图像 docker - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:25:44.735000             🧑  作者: Mango

手动删除未使用的图像 - Docker Shell-Bash

Docker 是一种流行的容器化平台,在使用过程中,经常会遇到容器启动失败,出现一些未知错误和不必要的日志。其中,Docker 容器中的未使用的图像占用了大量的磁盘空间,进而影响到系统的稳定性和性能。

为了解决这些问题,我们需要手动删除 Docker 镜像。

以下是在 Docker Shell-Bash 中手动删除未使用的图像的步骤。

步骤
  1. 运行命令 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
    
  2. 识别需要删除的镜像。在 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 镜像文件。

  3. 运行命令 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 标志表示强制删除,即使这些镜像被某些容器使用也将其删除。

  4. 再次运行 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 命令,以确保不会误删使用的镜像。