Après avoir poussé l'image Docker (avec Quelle est la commande AWS CLI pour supprimer une image intestinale dans ECR? P> Test code> Tag) à ECR, plus d'une fois, les images plus anciennes Docker ne sont pas intestées dans ECR P>
3 Réponses :
Que se passe-t-il est lorsque vous publiez une image Vous pouvez exécuter une commande CLI pour identifier les images non étiquetées et tuyer la sortie à la commande pour les supprimer. P>
Vous pouvez également utiliser des stratégies de cycle de vie. P>
Reportez-vous au lien ci-dessous. Je n'ai pas testé cela moi-même. p>
référence:
Comment supprimer des images non étiquetées du registre AWS ECR Container a> p>
https://docs.aws.amazon.com/amazonec /Latest/userguide/lifecyclepolicies.html P> image: tag code> la balise sera supprimée de l'image précédente. p>
Qu'est-ce que écr_repo code> signifie? Parce que je vois des rayures d'image non étiquette en ECR comme:
11112222334455.dkr.ecr.us-west-.amazonaws.com/someImage00D1E0B 18FA5A19D15C3CB47D22 2E345862DDDDDDDDDDD0 code>
Je devrais gérer des images supprimant explicitement en utilisant AWS CLI. Je ne suis pas autorisé à définir la politique de cycle de vie.
Fondamentalement, c'est l'URI de l'image sans étiquette. afin que vous puissiez marquer les non étiquetés si nécessaire
Vous pouvez essayer d'utiliser AWS CLI - définissez la région AWS correcte où existe vos référentiels ECR.
AWSREGION=us-west-2 && ecr describe-repositories --region=$AWSREGION --output text | awk '$5{print $5}' | sed -n 's/.*repository\/\(.*\)/\1/p' | while read line; do aws ecr list-images --region=$AWSREGION --repository-name "$line" --filter tagStatus=UNTAGGED --query 'imageIds[*]' --output text | while read imageId; do aws ecr batch-delete-image --region=$AWSREGION --repository-name "$line" --image-ids imageDigest=$imageId; done; done
Pour supprimer une image (non étiquette ou marquée) "Awsregion = US-EST-1 && AWS ECR Décrivez-lespersitories --region = $ awsregion --Output texte | Awk '$ 5 {IMPRESS $ 5}' | SED -N 'S /. * Repository \ / (. *) / \ 1 / p '| en ligne de lecture; do Aws ECR Liste-List-Images --Région = $ Awsregion --Repository-Name "$ Line" --Filter Tagstatus = Any -Query' imageids [*] '--Output text | awk' $ 1 {imprimé $ 1} '| Tout en readyID; do Aws ECR Batch-Suppr-Suppr-Image --Region = $ Awsregion - Nom "$ Line" --Image- IDS Imagegeigest = $ imageId; fait; fait "
Vous pouvez utiliser la stratégie de cycle de vie ECR, qui a été récemment ajoutée par AWS https://docs.aws.amazon.com/amazonecr/latest/userguide/lifecyclepolicies.html p>
Voici un exemple de politique visant à garder une image intestinale et expire toutes les autres p>
Est-ce que cela répond à votre question? Comment supprimer des images non étiquetées du registre AWS ECR Container a>
@Linypy ne fonctionne pas vraiment ... Image non étiquette a image URI:
11112222334455.dkr.ecr.us-west-.amazonaws.com/someImage@sha2 56: Feeeeeeee00D15C3CB47D22 2E345862DDDDDDDDDDD0 code> ...... Qu'est-ce que
ECR_REPO code> de cette URI? Je l'ai défini comme
salonimage code>, qui ne fonctionne pas