美文网首页
清理Docker 镜像、容器和卷

清理Docker 镜像、容器和卷

作者: 一瓶多先生 | 来源:发表于2021-06-23 16:37 被阅读0次

    清除所有未使用的镜像、容器、卷和网络

    Docker 提供了一个命令来清理的资源——images, containers, volumes, and networks:

    $ docker system prune
    

    要额外删除任何已停止的容器和所有未使用的images,添加-a参数到命令中:

    $ docker system prune -a
    

    删除Docker Image

    使用docker images 加上-a参数来定位要删除的Image的ID。 之后将ID传递给docker rmi:

    List:

    docker images -a
    

    Remove:

    docker rmi <ImageID> <ImageID>
    

    删除 dangling images

    当build docker 镜像的时候,有时会遇到用一个甚至多个中间层镜像,这会一定程度上减少最终打包出来 docker 镜像的大小,但是会产生一些tag 为 none 的无用镜像,也称为悬挂镜像 (dangling images)

    列出所有的 dangling images:

    docker images -f "dangling=true"
    

    删除所有的 dangling images:

    docker rmi $(docker images -f "dangling=true" -q)
    

    删除所有Image

    使用docker images添加-a可以列出系统上所有的docker镜像, 如果确定要将他们全部删除, 可以使用-q参数将ImageID传给docker rmi

    List:

    docker images -a
    

    Remove:

    docker rmi $(docker images -a -q)
    

    删除Container

    使用docker ps带有-a标志的命令来定位要删除的容器的名称或 ID:

    List:

    docker ps -a
    

    Remove:

    docker rm <ID_or_Name> <ID_or_Name>
    

    退出时移除容器

    如果要临时创建一个容器, 并且运行完成后不再保留,可以运行docker run --rm

    Run And Remove:

    docker run --rm image_name
    

    移除所有exited容器

    您可以使用容器定位docker ps -a并按其状态过滤它们:已创建、正在重新启动、正在运行、已暂停或已退出。要查看已退出容器的列表,请使用该-f标志根据状态进行过滤。当您确认要删除这些容器时,使用-q将 ID 传递给docker rm命令。

    List:

    docker ps -a -f status=exited
    

    Remove:

    docker rm $(docker ps -a -f status=exited -q)
    

    使用多个过滤器删除容器

    Docker 过滤器可以通过使用附加值重复过滤器标志来组合。这将生成满足任一条件的容器列表。例如,如果您想删除所有标记为Created(使用无效命令运行容器时可能导致的状态)或Exited的容器,您可以使用两个过滤器:

    List:

    docker ps -a -f status=exited -f status=created
    

    Remove:

    docker rm $(docker ps -a -f status=exited -f status=created -q)
    

    停止并删除所有容器

    使用docker ps 查看系统上所有运行的容器, 添加-a参数显示系统上所有容器(包括exited状态的容器)。 添加-q参数后将ID传给docker stopdocker rm停止不删除所有容器

    List:

    docker ps -a
    

    Remove:

    docker stop $(docker ps -a -q)
    docker rm $(docker ps -a -q)
    

    删除一个或多个特定卷 - Docker 1.9 及更高版本

    使用该docker volume ls命令定位要删除的卷名或名称。然后您可以使用以下docker volume rm命令删除一个或多个卷:

    List:

    docker volume ls
    

    Remove:

    docker volume rm volume_name volume_name
    

    删除dangling卷 - Docker 1.9 及更高版本

    由于卷的点是独立于容器而存在的,所以当一个容器被移除时,不会同时自动移除一个卷。当卷存在并且不再连接到任何容器时,它被称为悬垂卷。要找到它们以确认您要删除它们,您可以使用docker volume ls带有过滤器的命令将结果限制为悬空体积。当您对列表感到满意时,您可以使用以下命令将它们全部删除docker volume prune

    List:

    docker volume ls -f dangling=true
    

    Remove:

    docker volume prune
    

    相关文章

      网友评论

          本文标题:清理Docker 镜像、容器和卷

          本文链接:https://www.haomeiwen.com/subject/jybbyltx.html