3 回答
TA贡献1829条经验 获得超9个赞
docker system prune
-a
docker image prune -a
-a
.
docker system prune --all
docker xxx prune
--filter
目前支持的过滤器是:
until (<timestamp>)
-仅删除在给定时间戳之前创建的容器、图像和网络 label
(label=<key>
,label=<key>=<value>
,label!=<key>
,或 label!=<key>=<value>
)-只使用(或)删除容器、图像、网络和卷。 无
,以防万一 label!=...
指定的标签。
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
drmi
这个 dangling=true
筛选器查找未使用的图像
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
从技术上讲, 在清理图像之前,您应该先清理容器,因为这样可以捕获更多的悬空图像和较少的错误。.
dcleanup(){ docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null }
docker-gc
:
一个简单的Docker容器和图像垃圾收集脚本。
一个多小时前离开的容器被移除。 删除后不属于任何剩余容器的图像。
TA贡献2051条经验 获得超10个赞
$ docker images --no-trunc --format '{{.ID}} {{.CreatedSince}}' \ | grep ' months' | awk '{ print $1 }' \ | xargs --no-run-if-empty docker rmi
-f
/etc/cron.daily/docker-gc
#!/bin/sh -e # Delete all stopped containers (including data-only containers). docker ps -a -q --no-trunc --filter "status=exited" | xargs --no-run-if-empty docker rm -v # Delete all tagged images more than a month old # (will fail to remove images still used). docker images --no-trunc --format '{{.ID}} {{.CreatedSince}}' | grep ' months' | awk '{ print $1 }' | xargs --no-run-if-empty docker rmi || true # Delete all 'untagged/dangling' (<none>) images # Those are used for Docker caching mechanism. docker images -q --no-trunc --filter dangling=true | xargs --no-run-if-empty docker rmi # Delete all dangling volumes. docker volume ls -qf dangling=true | xargs --no-run-if-empty docker volume rm
添加回答
举报