代码之家  ›  专栏  ›  技术社区  ›  Peter Chan

“sudodockersystemprune-all”命令无法删除“none”映像。我该怎么解决这个问题?

  •  0
  • Peter Chan  · 技术社区  · 3 年前

    下面是我的终端日志。

    peter@web-server:~$ sudo docker system prune --all
    WARNING! This will remove:
      - all stopped containers
      - all networks not used by at least one container
      - all images without at least one container associated to them
      - all build cache
    
    Are you sure you want to continue? [y/N] y
    Total reclaimed space: 0B
    peter@web-server:~$ sudo docker images -a
    REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
    <none>       <none>    b48bd51fa2b9   3 weeks ago     408MB
    <none>       <none>    aebce4827c29   3 weeks ago     427MB
    website      005       58923eb21c4f   3 weeks ago     427MB
    <none>       <none>    24920f410c4b   3 weeks ago     427MB
    mysql        8.0       05db07cd74c0   3 weeks ago     565MB
    <none>       <none>    37cb44321d04   14 months ago   408MB
    peter@web-server:~$ sudo docker images --filter=reference=aebce4827c29
    REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
    peter@web-server:~$ sudo docker images --filter=reference=b48bd51fa2b9
    REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
    peter@web-server:~$ sudo docker images --filter=reference=24920f410c4b
    REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
    peter@web-server:~$ sudo docker images --filter=reference=37cb44321d04
    REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
    peter@web-server:~$ sudo docker rmi b48bd51fa2b9
    Error response from daemon: conflict: unable to delete b48bd51fa2b9 (cannot be forced) - image has dependent child images
    peter@web-server:~$ sudo docker rmi aebce4827c29
    Error response from daemon: conflict: unable to delete aebce4827c29 (cannot be forced) - image has dependent child images
    peter@web-server:~$ sudo docker rmi 24920f410c4b
    Error response from daemon: conflict: unable to delete 24920f410c4b (cannot be forced) - image has dependent child images
    peter@web-server:~$ sudo docker rmi 37cb44321d04
    Error response from daemon: conflict: unable to delete 37cb44321d04 (cannot be forced) - image has dependent child images
    

    我想删除悬挂的Docker映像,但该命令不起作用。我该如何解决这个问题?谢谢大家。

    1 回复  |  直到 3 年前
        1
  •  1
  •   David Maze    3 年前

    您正在使用 docker images -a 选项,其中显示了一些附加的中间图像,这些图像是Docker层系统的一部分。这些图像不会占用任何额外的空间(它们的大小计入最终图像大小);如果你真的想运行它们,你可以运行它们,但它们(通常)没有用处。

    我会把 -a 选项,该选项将隐藏 <none> 图像。它们是无害的,你不需要担心它们。

    你几乎可以在任何Docker图像中看到这一点。例如,你可以尝试比较

    docker pull redis
    docker images -a > images-1.txt
    docker rmi redis
    docker images -a > images-2.txt
    diff images-1.txt images-2.txt
    

    你会看到几个隐藏的 <none> 使用删除图像 docker rmi 调用。

    在您的特定设置中, docker rmi website:005 可能会删除几个 <none> 图像,但其中一些可能属于 mysql:8.0 图像。