

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Identifica automaticamente le immagini duplicate dei container durante la migrazione a un repository Amazon ECR
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository"></a>

*Rishabh Yadav e Rishi Singla, Amazon Web Services*

## Riepilogo
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-summary"></a>

Il modello fornisce una soluzione automatizzata per identificare se le immagini archiviate in diversi archivi di contenitori sono duplicate. Questo controllo è utile quando prevedi di migrare immagini da altri repository di container ad Amazon Elastic Container Registry (Amazon ECR).

Per informazioni di base, il modello descrive anche i componenti di un'immagine del contenitore, come image digest, manifest e tag. Quando pianifichi una migrazione ad Amazon ECR, potresti decidere di sincronizzare le immagini dei container tra i registri dei container confrontando i digest delle immagini. Prima di migrare le immagini dei container, devi verificare se tali immagini esistono già nel repository Amazon ECR per evitare la duplicazione. Tuttavia, può essere difficile rilevare la duplicazione confrontando i digest di immagini e ciò potrebbe causare problemi nella fase iniziale di migrazione.  Questo modello confronta i digest di due immagini simili archiviate in registri di contenitori diversi e spiega perché i digest variano, per aiutarvi a confrontare le immagini in modo accurato.

## Prerequisiti e limitazioni
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-prereqs"></a>
+ Un attivo Account AWS
+ Accesso al registro [pubblico di Amazon ECR](https://gallery.ecr.aws/)
+ Familiarità con quanto segue: Servizi AWS
  + [AWS CodeCommit](https://aws.amazon.com/codecommit/)
  + [AWS CodePipeline](https://aws.amazon.com/codepipeline/)
  + [AWS CodeBuild](https://aws.amazon.com/codebuild/)
  + [AWS Identity and Access Management (IAM)](https://aws.amazon.com/iam/)
  + [Amazon Simple Storage Service (Amazon S3)](https://aws.amazon.com/s3/)
+  CodeCommit Credenziali configurate (vedi [istruzioni](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html))

## Architecture
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-architecture"></a>

**Componenti dell'immagine del contenitore**

Il diagramma seguente illustra alcuni dei componenti di un'immagine contenitore. Questi componenti sono descritti dopo il diagramma.

![\[Manifesto, configurazione, livelli del file system e digest.\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7db5020c-6f5b-4e91-b91a-5b8ae844be1b/images/71b99c67-a934-4f94-8af8-2a8431fb91f5.png)


**Termini e definizioni**

I seguenti termini sono definiti nella [Open Container Initiative (OCI) Image Specification](https://github.com/opencontainers/image-spec/blob/main/spec.md).
+ **Registry:** un servizio per l'archiviazione e la gestione delle immagini.
+ **Client:** uno strumento che comunica con i registri e funziona con immagini locali.
+ **Push:** il processo per caricare le immagini in un registro.
+ **Pull:** il processo per scaricare immagini da un registro.
+ **Blob:** la forma binaria del contenuto che viene archiviata da un registro e può essere indirizzata tramite un digest.
+ **Indice:** costrutto che identifica più manifesti di immagini per diverse piattaforme di computer (ad esempio x86-64 o ARM a 64 bit) o tipi di media. [Per ulteriori informazioni, vedere la specifica OCI Image Index.](https://github.com/opencontainers/image-spec/blob/main/image-index.md)
+ **Manifest:** un documento JSON che definisce un'immagine o un artefatto che viene caricato tramite l'endpoint del manifesto. Un manifest può fare riferimento ad altri blob in un repository utilizzando descrittori. Per ulteriori informazioni, vedere la specifica [OCI Image Manifest](https://github.com/opencontainers/image-spec/blob/main/manifest.md).
+ **Livello del filesystem:** librerie di sistema e altre dipendenze per un'immagine.
+ **Configurazione:** un blob che contiene i metadati degli artefatti e a cui viene fatto riferimento nel manifesto. [Per ulteriori informazioni, vedere la specifica di configurazione dell'immagine OCI.](https://github.com/opencontainers/image-spec/blob/main/config.md)
+ **Oggetto o artefatto:** un contenuto concettuale archiviato come blob e associato a un manifesto di accompagnamento con una configurazione.
+ **Digest:** un identificatore univoco creato da un hash crittografico del contenuto di un manifesto. L'image digest aiuta a identificare in modo univoco un'immagine di contenitore immutabile. Quando estraete un'immagine utilizzando il relativo digest, scaricherete sempre la stessa immagine su qualsiasi sistema operativo o architettura. Per ulteriori informazioni, consulta la [specifica dell'immagine OCI](https://github.com/opencontainers/image-spec/blob/main/descriptor.md#digests).
+ **Tag: un identificatore** di manifesto leggibile dall'uomo. Rispetto ai digest di immagini, che sono immutabili, i tag sono dinamici. Un tag che punta a un'immagine può cambiare e spostarsi da un'immagine all'altra, sebbene l'image digest sottostante rimanga lo stesso.

**Architettura di Target**

Il diagramma seguente mostra l'architettura di alto livello della soluzione fornita da questo modello per identificare immagini di container duplicate confrontando le immagini archiviate in Amazon ECR e negli archivi privati.

![\[Rilevamento automatico dei duplicati con e. CodePipeline CodeBuild\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/images/pattern-img/7db5020c-6f5b-4e91-b91a-5b8ae844be1b/images/5ee62bc8-db8d-48a3-9e79-f3392b6e9bf7.png)


## Tools (Strumenti)
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-tools"></a>

**Servizi AWS**
+ [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)ti aiuta a configurare AWS le risorse, fornirle in modo rapido e coerente e gestirle durante tutto il loro ciclo di vita in tutte le regioni. Account AWS 
+ [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html)è un servizio di compilazione completamente gestito che consente di compilare codice sorgente, eseguire test unitari e produrre artefatti pronti per l'implementazione.
+ [AWS CodeCommit](https://docs.aws.amazon.com/codecommit/latest/userguide/welcome.html)è un servizio di controllo delle versioni che consente di archiviare e gestire in modo privato gli archivi Git, senza dover gestire il proprio sistema di controllo del codice sorgente.
+ [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html)ti aiuta a modellare e configurare rapidamente le diverse fasi di una versione del software e ad automatizzare i passaggi necessari per rilasciare continuamente le modifiche al software.
+ [Amazon Elastic Container Registry (Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/what-is-ecr.html)) è un servizio di registro di immagini di container gestito sicuro, scalabile e affidabile.

**Codice**

Il codice di questo modello è disponibile nel GitHub repository [Soluzione**** automatizzata per identificare immagini di container duplicate tra](https://github.com/aws-samples/automated-solution-to-identify-duplicate-container-images-between-repositories/) i repository.

## Best practice
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-best-practices"></a>
+ [CloudFormation migliori pratiche](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/best-practices.html)
+ [AWS CodePipeline migliori pratiche](https://docs.aws.amazon.com/codepipeline/latest/userguide/best-practices.html)

## poemi epici
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-epics"></a>

### Estrai immagini dei container dagli archivi pubblici e privati di Amazon ECR
<a name="pull-container-images-from-ecr-public-and-private-repositories"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Estrai un'immagine dall'archivio pubblico di Amazon ECR. | Dal terminale, esegui il seguente comando per estrarre l'immagine `amazonlinux` dall'archivio pubblico di Amazon ECR.<pre>$~ % docker pull public.ecr.aws/amazonlinux/amazonlinux:2018.03 </pre>Quando l'immagine è stata caricata sul tuo computer locale, vedrai il seguente pull digest, che rappresenta l'indice dell'immagine.<pre>2018.03: Pulling from amazonlinux/amazonlinux<br />4ddc0f8d367f: Pull complete <br /><br />Digest: sha256:f972d24199508c52de7ad37a298bda35d8a1bd7df158149b381c03f6c6e363b5<br /><br />Status: Downloaded newer image for public.ecr.aws/amazonlinux/amazonlinux:2018.03<br />public.ecr.aws/amazonlinux/amazonlinux:2018.03</pre> | Sviluppatore di app, AWS DevOps, amministratore AWS | 
| Invia l'immagine a un repository privato Amazon ECR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | Amministratore AWS, AWS DevOps, sviluppatore di app | 
| Estrai la stessa immagine dall'archivio privato di Amazon ECR. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | Sviluppatore di app, AWS DevOps, amministratore AWS | 

### Confronta i manifesti delle immagini
<a name="compare-the-image-manifests"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Trova il manifesto dell'immagine archiviata nell'archivio pubblico di Amazon ECR. | Dal terminale, esegui il comando seguente per estrarre il manifesto dell'immagine `public.ecr.aws/amazonlinux/amazonlinux:2018.03` dall'archivio pubblico di Amazon ECR.<pre>$~ % docker manifest inspect public.ecr.aws/amazonlinux/amazonlinux:2018.03<br />{<br />   "schemaVersion": 2,<br />   "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",<br />   "manifests": [<br />      {<br />         "mediaType": "application/vnd.docker.distribution.manifest.v2+json",<br />         "size": 529,<br />         "digest": "sha256:52db9000073d93b9bdee6a7246a68c35a741aaade05a8f4febba0bf795cdac02",<br />         "platform": {<br />            "architecture": "amd64",<br />            "os": "linux"<br />         }<br />      }<br />   ]<br />}</pre> | Amministratore AWS, AWS DevOps, sviluppatore di app | 
| Trova il manifesto dell'immagine archiviata nell'archivio privato di Amazon ECR. | Dal terminale, esegui il seguente comando per estrarre il manifesto dell'immagine `<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository:latest` dall'archivio privato di Amazon ECR.<pre>$~ % docker manifest inspect <account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository:latest                                          <br />{<br />	"schemaVersion": 2,<br />	"mediaType": "application/vnd.docker.distribution.manifest.v2+json",<br />	"config": {<br />		"mediaType": "application/vnd.docker.container.image.v1+json",<br />		"size": 1477,<br />		"digest": "sha256:f7cee5e1af28ad4e147589c474d399b12d9b551ef4c3e11e02d982fce5eebc68"<br />	},<br />	"layers": [<br />		{<br />			"mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",<br />			"size": 62267075,<br />			"digest": "sha256:4ddc0f8d367f424871a060e2067749f32bd36a91085e714dcb159952f2d71453"<br />		}<br />	]<br />}</pre> | AWS DevOps, amministratore di sistema AWS, sviluppatore di app | 
| Confronta il digest estratto da Docker con il manifest digest per l'immagine nel repository privato di Amazon ECR. | Un'altra domanda è perché il digest fornito dal comando **docker** pull differisce dal digest del manifest per l'immagine. `<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository:latest`Il digest utilizzato per **docker** pull rappresenta il digest del manifesto dell'immagine, che è archiviato in un registro. Questo digest è considerato la radice di una catena di hash, poiché il manifest contiene l'hash del contenuto che verrà scaricato e importato in Docker.L'ID dell'immagine utilizzato in Docker può essere trovato in questo manifesto come. `config.digest` Rappresenta la configurazione dell'immagine utilizzata da Docker. Quindi si potrebbe dire che il manifesto è la busta e l'immagine è il contenuto della busta. Il manifest digest è sempre diverso dall'ID dell'immagine. Tuttavia, un manifesto specifico dovrebbe sempre produrre lo stesso ID di immagine. Poiché il manifest digest è una catena di hash, non possiamo garantire che sarà sempre la stessa per un determinato ID di immagine. Nella maggior parte dei casi, produce lo stesso digest, sebbene Docker non possa garantirlo. La possibile differenza nel manifest digest deriva dal fatto che Docker non memorizza localmente i blob compressi con gzip. Pertanto, l'esportazione dei livelli potrebbe produrre un digest diverso, sebbene il contenuto non compresso rimanga lo stesso. L'ID dell'immagine verifica che il contenuto non compresso sia lo stesso; in altre parole, l'ID dell'immagine è ora un identificatore indirizzabile al contenuto (). `chainID`Per confermare queste informazioni, puoi confrontare l'output del comando **docker inspect** sui repository pubblici e privati di Amazon ECR:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html)I risultati verificano che entrambe le immagini abbiano lo stesso Image ID digest e lo stesso layer digest.ID: `f7cee5e1af28ad4e147589c474d399b12d9b551ef4c3e11e02d982fce5eebc68`Strati: `d5655967c2c4e8d68f8ec7cf753218938669e6c16ac1324303c073c736a2e2a2`Inoltre, i digest si basano sui byte dell'oggetto gestito localmente (il file locale è un tar del livello di immagine del contenitore) o sul blob inviato al server di registro. Tuttavia, quando inviate il blob a un registro, il tar viene compresso e il digest viene calcolato nel file tar compresso. Pertanto, la differenza nel valore del **docker pull** digest deriva dalla compressione applicata a livello di registro (Amazon ECR privato o pubblico).Questa spiegazione è specifica per l'utilizzo di un client Docker. Questo comportamento non si verificherà con altri client come **nerdctl** o **Finch**, perché non comprimono automaticamente l'immagine durante le operazioni push e pull. | AWS DevOps, amministratore di sistema AWS, sviluppatore di app | 

### Identifica automaticamente le immagini duplicate tra gli archivi pubblici e privati di Amazon ECR
<a name="automatically-identify-duplicate-images-between-ecr-public-and-private-repositories"></a>


| Operazione | Description | Competenze richieste | 
| --- | --- | --- | 
| Clonare il repository. | Clona il repository Github per questo pattern in una cartella locale:<pre>$git clone https://github.com/aws-samples/automated-solution-to-identify-duplicate-container-images-between-repositories</pre> | Amministratore AWS, AWS DevOps | 
| Configura una CI/CD pipeline. | Il GitHub repository include un `.yaml` file che crea uno CloudFormation stack in cui configurare una pipeline. AWS CodePipeline[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html)La pipeline verrà impostata in due fasi (CodeCommit e CodeBuild, come mostrato nel diagramma dell'architettura) per identificare le immagini nell'archivio privato che esistono anche nell'archivio pubblico. La pipeline è configurata con le seguenti risorse:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | Amministratore AWS, AWS DevOps | 
| Popola il CodeCommit repository. | Per popolare il CodeCommit repository, effettuate le seguenti operazioni:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | Amministratore AWS, AWS DevOps | 
| Elimina. | Per evitare di incorrere in future spese, elimina le risorse seguendo questi passaggi:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | Amministratore AWS | 

## risoluzione dei problemi
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-troubleshooting"></a>


| Problema | Soluzione | 
| --- | --- | 
| Quando provi a inviare, estrarre o interagire in altro modo con un CodeCommit repository dal terminale o dalla riga di comando, ti viene richiesto di fornire un nome utente e una password e devi fornire le credenziali Git per il tuo utente IAM. | Le cause più comuni di questo errore sono le seguenti:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html)A seconda del sistema operativo in uso e dell'ambiente locale, può essere necessario installare un sistema di gestione delle credenziali, configurare quello incluso nel sistema operativo oppure personalizzare l'ambiente locale per l'utilizzo di un sistema di storage delle credenziali. Ad esempio, se sul computer è in esecuzione macOS, è possibile utilizzare l'utilità Keychain Access per archiviare le credenziali. Se il computer esegue Windows puoi utilizzare la funzionalità Git Credential Manager installata con Git per Windows. Per ulteriori informazioni, consulta [Configurazione per utenti HTTPS che utilizzano credenziali Git](https://docs.aws.amazon.com/codecommit/latest/userguide/setting-up-gc.html) nella CodeCommit documentazione e [Archiviazione delle credenziali](https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage) nella documentazione Git. | 
| Quando invii un'immagine al repository Amazon ECR, riscontri errori HTTP 403 o «nessuna credenziale di autenticazione di base». | **Potresti riscontrare questi messaggi di errore dal comando **docker push** o **docker pull**, anche se ti sei autenticato con successo su Docker utilizzando il comando aws ecr. get-login-password** Le cause note sono:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/prescriptive-guidance/latest/patterns/identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository.html) | 

## Risorse correlate
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-resources"></a>
+ [Soluzione automatizzata per identificare le immagini duplicate dei container tra i repository (repository](https://github.com/aws-samples/automated-solution-to-identify-duplicate-container-images-between-repositories/)) GitHub 
+ [Galleria pubblica di Amazon ECR](https://gallery.ecr.aws/)
+ [Immagini private in Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/images.html) (documentazione Amazon ECR)
+ [AWS::CodePipeline::Pipeline risorsa (documentazione](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codepipeline-pipeline.html))CloudFormation 
+ [Specificazione del formato di immagine OCI](https://github.com/opencontainers/image-spec/blob/main/spec.md)

## Informazioni aggiuntive
<a name="identify-duplicate-container-images-automatically-when-migrating-to-ecr-repository-additional"></a>

**Risultato dell'ispezione Docker per l'immagine nell'archivio pubblico Amazon ECR**

```
[
    {
        "Id": "sha256:f7cee5e1af28ad4e147589c474d399b12d9b551ef4c3e11e02d982fce5eebc68",
        "RepoTags": [
            "<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository:latest",
            "public.ecr.aws/amazonlinux/amazonlinux:2018.03"
        ],
        "RepoDigests": [
            "<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository@sha256:52db9000073d93b9bdee6a7246a68c35a741aaade05a8f4febba0bf795cdac02",
            "public.ecr.aws/amazonlinux/amazonlinux@sha256:f972d24199508c52de7ad37a298bda35d8a1bd7df158149b381c03f6c6e363b5"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2023-02-23T06:20:11.575053226Z",
        "Container": "ec7f2fc7d2b6a382384061247ef603e7d647d65f5cd4fa397a3ccbba9278367c",
        "ContainerConfig": {
            "Hostname": "ec7f2fc7d2b6",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:c1bced1b5a65681e1e0e52d0a6ad17aaf76606149492ca0bf519a466ecb21e51",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "20.10.17",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:c1bced1b5a65681e1e0e52d0a6ad17aaf76606149492ca0bf519a466ecb21e51",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 167436755,
        "VirtualSize": 167436755,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/merged",
                "UpperDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/diff",
                "WorkDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:d5655967c2c4e8d68f8ec7cf753218938669e6c16ac1324303c073c736a2e2a2"
            ]
        },
        "Metadata": {
            "LastTagTime": "2023-03-02T10:28:47.142155987Z"
        }
    }
]
```

**Risultato dell'ispezione Docker per l'immagine nell'archivio privato Amazon ECR**

```
[
    {
        "Id": "sha256:f7cee5e1af28ad4e147589c474d399b12d9b551ef4c3e11e02d982fce5eebc68",
        "RepoTags": [
            "<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository:latest",
            "public.ecr.aws/amazonlinux/amazonlinux:2018.03"
        ],
        "RepoDigests": [
            "<account-id>.dkr.ecr.us-east-1.amazonaws.com/test_ecr_repository@sha256:52db9000073d93b9bdee6a7246a68c35a741aaade05a8f4febba0bf795cdac02",
            "public.ecr.aws/amazonlinux/amazonlinux@sha256:f972d24199508c52de7ad37a298bda35d8a1bd7df158149b381c03f6c6e363b5"
        ],
        "Parent": "",
        "Comment": "",
        "Created": "2023-02-23T06:20:11.575053226Z",
        "Container": "ec7f2fc7d2b6a382384061247ef603e7d647d65f5cd4fa397a3ccbba9278367c",
        "ContainerConfig": {
            "Hostname": "ec7f2fc7d2b6",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/sh",
                "-c",
                "#(nop) ",
                "CMD [\"/bin/bash\"]"
            ],
            "Image": "sha256:c1bced1b5a65681e1e0e52d0a6ad17aaf76606149492ca0bf519a466ecb21e51",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": {}
        },
        "DockerVersion": "20.10.17",
        "Author": "",
        "Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
            ],
            "Cmd": [
                "/bin/bash"
            ],
            "Image": "sha256:c1bced1b5a65681e1e0e52d0a6ad17aaf76606149492ca0bf519a466ecb21e51",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
        "Architecture": "amd64",
        "Os": "linux",
        "Size": 167436755,
        "VirtualSize": 167436755,
        "GraphDriver": {
            "Data": {
                "MergedDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/merged",
                "UpperDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/diff",
                "WorkDir": "/var/lib/docker/overlay2/c2c2351a82b26cbdf7782507500e5adb5c2b3a2875bdbba79788a4b27cd6a913/work"
            },
            "Name": "overlay2"
        },
        "RootFS": {
            "Type": "layers",
            "Layers": [
                "sha256:d5655967c2c4e8d68f8ec7cf753218938669e6c16ac1324303c073c736a2e2a2"
            ]
        },
        "Metadata": {
            "LastTagTime": "2023-03-02T10:28:47.142155987Z"
        }
    }
]
```