docker 移除,裁剪,删除(prune)不使用的镜像、容器、卷、网络

参考docker prune

提供 prune命令,用于移除不使用的镜像、容器、卷、网络。

Prune images

docker image prune移除没有标签并且没有被容器引用的镜像,这种镜像称为 dangling(摇晃的) 镜像。

示例1:docker image prune

删除了redis,无标签且无引用

#docker ps -a
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
# docker images
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
nginx                   latest    ae2feff98a0c   4 days ago     133MB
redis                       ef47f3b6dc11   8 days ago     104MB
centos                  latest    300e315adb2f   12 days ago    209MB
ubuntu                  latest    f643c72bc252   3 weeks ago    72.9MB
docs/docker.github.io   latest    32ed84d97e30   6 months ago   1GB
# docker image prune
# docker images
REPOSITORY              TAG       IMAGE ID       CREATED        SIZE
nginx                   latest    ae2feff98a0c   4 days ago     133MB
centos                  latest    300e315adb2f   12 days ago    209MB
ubuntu                  latest    f643c72bc252   3 weeks ago    72.9MB
docs/docker.github.io   latest    32ed84d97e30   6 months ago   1GB

示例2:移除所有没有容器使用的镜像 -a

docker image prune -a

跳过警告提示:--force-f

docker image prune -f

示例3:执行过滤删除:

超过24小时创建的镜像

docker image prune -a --filter "until=24h"

关于过滤器的内容,查看 docker image prune手册

移除容器s

当停止容器,不会自动删除,除非在 docker run 时指定了 --rm。一个停止的容器可写层仍然会占用磁盘空间,所以清除它,使用 docker container prune命令。

其他参数类似 docker images prune

移除卷

卷会被一个或多个容器使用,并且占用主机空间。卷不会自动移除,因为自动移除,会破坏数据。

docker volume prune

其他参数类似 docker images prune

移除网络

Docker 网络不会占用磁盘空间,但是他们创建了 iptables规则,桥接网络服务,路由entries。清除未被容器使用的网络,这么做

docker network prune

其他参数类似 docker images prune

移除 Everything

docker system prune 命令是一个快捷方式,用于移除镜像,容器,网络。

在 Docker 17.06.0 和更早,卷也是可以移除的。在Docker 17.06.1或更高版本,需要指定参数--volumes

示例(没有移除卷):

# docker system prune

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

示例(有了移除卷功能):添加--volumes

# docker system prune --volumes

WARNING! This will remove:
        - all stopped containers
        - all networks not used by at least one container
        - all volumes not used by at least one container
        - all dangling images
        - all build cache
Are you sure you want to continue? [y/N] y

其他参数类似 docker images prune

PS

帮助到你的话,点个赞鼓励一下吧,欢迎加入置顶博客的qq技术交流群,仅生活工作当中的技术交流,不搞代课推广,也代不动。让我们一起向诗靠拢.

你可能感兴趣的:(docker)