#!/usr/bin/env python import json import boto3 DOCKER_BUCKET = 'docker-registry' def main(s3): bucket = s3.Bucket(DOCKER_BUCKET) used_images = set() for key in bucket.objects.filter(Prefix='registry/repositories'): if (key.key.endswith('/_index_images')): data = json.loads(key.get()['Body'].read().decode('utf-8')) for item in data: used_images.update([item.get('id')]) for key in bucket.objects.filter(Prefix='registry/images'): image_id = key.key.split('/', 3)[2] if image_id not in used_images: print(key.key) key.delete() if __name__ == '__main__': main(boto3.resource('s3'))