【问题标题】:How to check for unuse images for your docker containers?如何检查 docker 容器中未使用的图像?
【发布时间】:2018-05-04 23:42:13
【问题描述】:

我有 3 个容器,但我有很多图片,正如您在图片中看到的那样。


⚡️ 码头工人图片

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

我不确定这是否正常。

如何检查我不使用的图像并相应地删除它们?

【问题讨论】:

  • images that I don't use 有点模糊..你能运行 docker ps,这只会输出正在运行的容器,所以任何不运行的容器都可能没有用

标签: docker docker-compose dockerfile dockerhub docker-image


【解决方案1】:

您可以使用以下命令查找未使用的图像:

docker images -f dangling=true

以及他们的 ID 列表:

docker images -q -f dangling=true

如果您想删除它们:

docker rmi $(docker images -q -f dangling=true)

【讨论】:

  • 这是错误的。图像可以未使用但不悬空。这不会找到未使用但已标记的图像。
【解决方案2】:

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/ 用于停止的容器。

【讨论】:

  • 问题是如何列出它们(然后删除它们);在修改任何东西之前,需要有一种方法来验证该操作会做什么。
【解决方案3】:

以上答案帮助我们找到并删除悬空图像,但不是未使用的。

所以要获取机器上所有未使用的 docker 镜像

  1. 获取属于正在运行的容器的所有图像(未停止或退出)

  2. 获取机器上的所有图片

  3. 然后从步骤 2 过滤步骤 1 中的图像

以下是可以帮助实现此目的的基本 shell 脚本

runningImages=$(docker ps --format {{.Image}})
docker images --format {{.Repository}}:{{.Tag}} | grep -v "$runningImages"

请确保在删除未使用的图像(不是悬空的图像)之前将它们列出,然后决定手动删除哪一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 2022-10-19
    相关资源
    最近更新 更多