当我运行docker image ls
时,我看到了这个
REPOSITORY TAG IMAGE ID CREATED SIZE
<none> <none> c012c1e2eb45 4 hours ago 2.59GB
<none> <none> a2013debf751 5 hours ago 2.59GB
<none> <none> 0bbb2f67083c 5 hours ago 2.59GB
<none> <none> af18b070061b 29 hours ago 182MB
<none> <none> 186a8fac122e 35 hours ago 1.67GB
<none> <none> 0f90c1bb12a3 35 hours ago 182MB
<none> <none> b94009e70416 13 days ago 631MB
<none> <none> 880d8e6713cf 2 weeks ago 631MB
b/2018-external latest 128d208a6c83 2 weeks ago 207MB
2018-external latest 128d208a6c83 2 weeks ago 207MB
b/2018-web <none> 128d208a6c83 2 weeks ago 207MB
nginx latest 9e7424e5dbae 2 weeks ago 108MB
node 8-alpine 4db2697ce114 4 weeks ago 67.7MB
b_web latest d5a0ea011c0a 5 weeks ago 182MB
<none> <none> 957c22ababec 5 weeks ago 182MB
docker_web latest 70b443ed0495 5 weeks ago 182MB
docker_app latest 509d58a68224 5 weeks ago 756MB
b_app latest 509d58a68224 5 weeks ago 756MB
mysql 5.6 96dc914914f5 5 weeks ago 299MB
mysql latest 5fac85ee2c68 8 weeks ago 408MB
redis latest 1fb7b6c8c0d0 2 months ago 107MB
alpine 3.6 76da55c8019d 2 months ago 3.97MB
nginx 1.13.3-alpine ba60b24dbad5 5 months ago 15.5MB
keymetrics/pm2-docker-alpine 6 4a09bfc067d6 5 months ago 75.3MB
dockercloud/cli latest 051238cd0a37 6 months ago 64.2MB
andrewmclagan/nginx-hhvm latest ec6cc741eb0e 7 months ago 580MB
nginx 1.10 0346349a1a64 8 months ago 182MB
php 7.0.8-fpm 75b880f3a420 17 months ago 375MB
tutum/haproxy latest 33bc771bec1e 18 months ago 232MB
php 7.0.4-fpm 81d7a2fdc6dc 21 months ago 494MB
我如何知道哪个图像可以安全删除?
我的注意力是将它们全部删除,但我不确定在这之前我是否应该更加满意。
答案 0 :(得分:2)
您可以使用docker image prune
删除&#34;悬空&#34;图片;那些未标记的内容(例如<none>
)和未被任何正在运行的容器引用。
我发现docker image prune -a
更有用。它将删除正在运行的容器未使用的任何图像。在这种意义上,修剪-a是一个清理步骤,您可以在环境正常运行后执行该操作。
答案 1 :(得分:1)
被称为悬空的图像可以安全移除。那些是没有标签的图像。当出现新的图像构建并且新图像使标记留下带有<none>:<none>
的悬空图像时,会产生它们
标签
可以使用docker images --filter "dangling=true"
列出悬空图片,并可以通过运行docker image prune
删除。
答案 2 :(得分:0)
这个命令对我也有用。
docker rmi $(docker images -f "dangling=true" -q)
答案 3 :(得分:0)
清除所有未使用或悬挂的图像,容器,卷和网络:
清理悬空(不与容器关联)的所有资源(图像,容器,卷和网络):
docker system prune
删除所有停止的容器和所有未使用的图像(不仅仅是悬空的图像):
docker system prune -a
删除一个或多个特定图像: docker rmi Image Image
删除悬空的图像: docker images purge
根据图案删除图像: docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi
删除所有图像: docker rmi $(docker images -a -q)
删除一个或多个特定容器: docker rm ID_or_Name ID_or_Name
在退出时删除容器(运行并删除): docker run --rm image_name
删除所有退出的容器: docker rm $(docker ps -a -f status=exited -q)
使用多个过滤器删除容器: docker rm $(docker ps -a -f status=exited -f status=created -q)
停止并删除所有容器:
docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)
原始文章:digitalocean