我从dockerhub提取图像,并在将图像推送到本地注册表之前标记它们



我从dockerhub提取图像,并在我将图像推送到本地注册表之前标记它们,所以我想在最后删除服务器中的原始图像和标记后的图像,所以我只保留我推送到本地注册表的内容。

这是标签代码

def tag_images(images, image_names):
print('====Tagging Images====')
for image, image_name in zip(images, image_names):
iname, itag = get_name_and_tag(image_name)
image.tag(repository=f'{REGISTRY_IP}:{REGISTRY_PORT}/{iname}',
tag="local_"+itag)
print(
f'Successfully Tagged: {iname}:local_{itag} as {REGISTRY_IP}:{REGISTRY_PORT}/{iname}:local_{itag}')
print(f'====Tagged {len(images)} Images====')
> here is the deleting code
def remove_images(image_names, client):
print(f'====Deleting Original Images====')
for image_name in image_names:
iname, itag = get_name_and_tag(image_name)
client.images.remove(image=f'{iname}:{itag}:{"local_"+itag}', force=True)
print(f'====Deleted {len(image_names)} Images====')

所以我可以从服务器上删除原始图像,但我不能删除标记后的图像。

任何建议吗?提前感谢

答案在这里

def remove_images(image_names, client):
print(f'====Deleting Original Images====')
for image in client.images.list():
print("Image: ", image.tags)
if "local" in str(image.tags):
client.images.remove(image=image.id, force=True)
print(f'====Deleted {len(image_names)} Images====')

最新更新