我有3个容器,但我有很多图像,你可以看到在图像。
- ️ docker images*
REPOSITORY TAG IMAGE ID CREATED SIZE
sscportalsmb_smb-portal latest ad0854c799f6 12 days ago 17.6MB
bheng_web latest d5a0ea011c0a 2 weeks ago 182MB
<none> <none> 957c22ababec 2 weeks ago 182MB
docker_web latest 70b443ed0495 2 weeks ago 182MB
bheng_app latest 509d58a68224 2 weeks ago 756MB
docker_app latest 509d58a68224 2 weeks ago 756MB
mysql 5.6 96dc914914f5 2 weeks ago 299MB
sscportalapi_ssc-portal-api latest e8295f9cb5f1 4 weeks ago 160MB
sscportaladmin_admin-portal latest fd141ceba4d6 4 weeks ago 17.7MB
mysql latest 5fac85ee2c68 5 weeks ago 408MB
redis latest 1fb7b6c8c0d0 6 weeks ago 107MB
alpine 3.6 76da55c8019d 2 months ago 3.97MB
keymetrics/pm2-docker-alpine 6 4a09bfc067d6 4 months ago 75.3MB
andrewmclagan/nginx-hhvm latest ec6cc741eb0e 7 months ago 580MB
nginx 1.10 0346349a1a64 7 months ago 182MB
tutum/haproxy latest 33bc771bec1e 17 months ago 232MB
php 7.0.4-fpm 81d7a2fdc6dc 20 months ago 494MB
我不确定这是否正常。
我如何检查我不使用的图像并相应地删除它们?
5条答案
按热度按时间pgky5nke1#
上面的答案帮助我们找到并删除悬空图像,但不是未使用的。
所以要获取机器上所有未使用的docker镜像
1.获取属于正在运行的容器(未停止或退出)的所有映像
1.获取机器上的所有图像
1.然后从步骤2过滤步骤1中的图像
下面是一个基本的shell脚本,它可以帮助你做到这一点
在删除未使用的图像(而不是悬挂的图像)之前,请确保将它们列出,然后决定手动删除哪一个。
px9o7tmv2#
您可以使用以下命令查找未使用的图像:
还有他们的身份证
如果您想删除它们:
nx7onnlm3#
Docker不久前为此添加了特殊命令:
docker image prune
-> https://docs.docker.com/engine/reference/commandline/image_prune/用于删除未使用的映像,docker container prune
-> https://docs.docker.com/engine/reference/commandline/container_prune/用于停止的容器。bd1hkmkf4#
比较
docker images
和docker ps
的结果,您应该能够理解在运行的容器中使用了哪些映像。docker ps
输出的第二列实际上是所使用的图像。nbysray55#
使用
docker image prune
前检查docker image prune
只删除没有任何容器的dangling
镜像。检查受影响图像的脚本:
使用
docker image prune -a
前检查docker image prune -a
删除所有没有容器的镜像。检查受影响图像的脚本:
(It对
@GPuri
的答案进行了一些改进和修复,例如,列出了所有容器中的图像,不仅运行了< >
的图像,而且还检查了由图像的ID
而不是name:tag
创建的容器。