DiskUsage calculates the disk usage for each image in the local containers storage. Note that a single image may yield multiple usage reports, one for each repository tag.
(ctx context.Context)
| 29 | // storage. Note that a single image may yield multiple usage reports, one for |
| 30 | // each repository tag. |
| 31 | func (r *Runtime) DiskUsage(ctx context.Context) ([]ImageDiskUsage, error) { |
| 32 | layerTree, err := r.layerTree() |
| 33 | if err != nil { |
| 34 | return nil, err |
| 35 | } |
| 36 | |
| 37 | images, err := r.ListImages(ctx, nil, nil) |
| 38 | if err != nil { |
| 39 | return nil, err |
| 40 | } |
| 41 | |
| 42 | var allUsages []ImageDiskUsage |
| 43 | for _, image := range images { |
| 44 | usages, err := diskUsageForImage(ctx, image, layerTree) |
| 45 | if err != nil { |
| 46 | return nil, err |
| 47 | } |
| 48 | allUsages = append(allUsages, usages...) |
| 49 | } |
| 50 | return allUsages, err |
| 51 | } |
| 52 | |
| 53 | // diskUsageForImage returns the disk-usage baseistics for the specified image. |
| 54 | func diskUsageForImage(ctx context.Context, image *Image, tree *layerTree) ([]ImageDiskUsage, error) { |