参考docker prune
提供 prune
命令,用于移除不使用的镜像、容器、卷、网络。
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手册
当停止容器,不会自动删除,除非在 docker run 时指定了 --rm
。一个停止的容器可写层仍然会占用磁盘空间,所以清除它,使用 docker container prune
命令。
…
其他参数类似
docker images prune
卷会被一个或多个容器使用,并且占用主机空间。卷不会自动移除,因为自动移除,会破坏数据。
docker volume prune
…
其他参数类似
docker images prune
Docker 网络不会占用磁盘空间,但是他们创建了 iptables
规则,桥接网络服务,路由entries。清除未被容器使用的网络,这么做
docker network prune
…
其他参数类似
docker images prune
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
帮助到你的话,点个赞鼓励一下吧,欢迎加入置顶博客的qq技术交流群,仅生活工作当中的技术交流,不搞代课推广,也代不动。让我们一起向诗靠拢.