# copy from one registry to the next import requests import os old_registry = "old.registry.tld" new_registry = "new.registry.tld" old_catalog = "https://" + old_registry + "/v2/_catalog"; catalog = requests.get(old_catalog, auth=requests.auth.HTTPBasicAuth('admin', 'PASSWORD')) repositories = catalog.json()['repositories'] image_list = [] for r in repositories: tags = requests.get('https://' + old_registry + '/v2/' + r + '/tags/list', auth=requests.auth.HTTPBasicAuth('admin', 'PASSWORD')) if 'name' not in tags.json().keys(): continue else: if tags.json()['tags'] == None: image_list.append(tags.json()['name']) continue for t in tags.json()['tags']: image_list.append("{}:{}".format(tags.json()['name'], t)) for i in image_list: old_image = old_registry + '/' + i new_image = new_registry + '/' + i os.system("docker pull " + old_image) os.system("docker tag " + old_image + " " + new_image) os.system("docker push " + new_image) for i in image_list: old_image = old_registry + '/' + i new_image = new_registry + '/' + i os.system("docker rmi " + old_image + " " + new_image)