Risoluzione dei problemi e dei comandi Docker durante l'utilizzo di Amazon ECR - Amazon ECR

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à.

Risoluzione dei problemi e dei comandi Docker durante l'utilizzo di Amazon ECR

In alcuni casi, l'esecuzione di un comando Docker su Amazon ECR potrebbe generare un messaggio di errore. Alcuni messaggi di errore comuni e possibili soluzioni sono spiegati di seguito.

I log Docker non contengono i messaggi di errore previsti

Per iniziare il debug di qualsiasi problema relativo a Docker, inizia attivando l'output di debug di Docker sul demone Docker in esecuzione sulle istanze host. Se utilizzi immagini estratte da Amazon ECR su istanze di container Amazon ECS, consulta Configuring verbose output dal daemon Docker nella Amazon Elastic Container Service Developer Guide.

Errore: "Filesystem Verification Failed" (Verifica del file system non riuscita) oppure "404: Image Not Found" (404: Immagine non trovata) durante l'estrazione di un'immagine da un repository Amazon ECR

Potresti ricevere l'errore Filesystem verification failed quando utilizzi il comando docker pull per estrarre un'immagine da un repository Amazon ECR con Docker 1.9 o versione successiva. Puoi visualizzare l'errore 404: Image not found quando usi le versioni di Docker precedenti a 1.9.

Di seguito sono elencate alcune possibili cause e le relative spiegazioni.

Il disco locale è pieno

Se il disco locale sul quale esegui docker pull è pieno, il valore hash SHA-1 calcolato sul file locale può essere diverso dal valore calcolato da Amazon ECR. Controlla che sul tuo disco locale vi sia spazio libero sufficiente per conservare l'immagine Docker che stai estraendo. Puoi anche eliminare le immagini meno recenti per fare spazio a nuove immagini. Usa il comando docker images per vedere un elenco di tutte le immagini Docker scaricate in locale con le relative dimensioni.

Il client non è in grado di connettersi al repository remoto a causa di un errore di rete

Le chiamate a un repository Amazon ECR richiedono una connessione valida a Internet. Verifica le impostazioni di rete e che altri strumenti e applicazioni possano accedere alle risorse su Internet. Se esegui docker pull su un'istanza Amazon EC2 in una sottorete privata, verifica che la sottorete abbia una route a Internet. Utilizzare un server NAT (Network Address Translation) o un gateway NAT gestito.

Al momento, le chiamate a un repository Amazon ECR richiedono anche accesso di rete tramite il firewall aziendale a Amazon Simple Storage Service (Amazon S3). Se la tua organizzazione utilizza un firewall o un dispositivo NAT che consente gli endpoint del servizio, verifica che gli endpoint del servizio Amazon S3 per la regione corrente siano autorizzati.

Se utilizzi Docker dietro un proxy HTTP, puoi configurare Docker con le impostazioni proxy appropriate. Per ulteriori informazioni, consulta Proxy HTTP nella documentazione Docker.

Errore: "Filesystem Layer Verification Failed" (Verifica dei livelli del file system non riuscita) durante l'estrazione di immagini da Amazon ECR

Puoi visualizzare l'errore image image-name not found quando estrai le immagini utilizzando il comando docker pull. Se ispezioni i log di Docker, potresti trovare un errore simile al seguente:

filesystem layer verification failed for digest sha256:2b96f...

Questo errore indica che non è stato possibile scaricare uno o più livelli per la tua immagine. Di seguito sono elencate alcune possibili cause e le relative spiegazioni.

Stai utilizzando una versione di Docker meno recente

Questo errore può verificarsi in una piccola percentuale di casi quando utilizzi una versione di Docker precedente alla 1.10. Aggiorna il tuo client Docker alla versione 1.10 o versione successiva.

Il client ha riscontrato un errore di rete o del disco

Un problema di disco pieno o di rete può impedire a uno o più livelli di essere scaricati, come descritto precedentemente in merito al messaggio Filesystem verification failed. Segui le raccomandazioni suddette per assicurarti che il tuo file system non sia pieno e che tu abbia abilitato l'accesso ad Amazon S3 dalla tua rete.

Errore HTTP 403 o errore "no basic auth credentials" (Nessuna credenziale di autenticazione di base) quando effettui l'invio al repository

Ci sono volte in cui puoi visualizzare un errore HTTP 403 (Forbidden) oppure il messaggio di errore no basic auth credentials dal comando docker push o docker pull, anche sei ti sei autenticato correttamente in Docker utilizzando il comando aws ecr get-login-password. Di seguito sono elencate alcune cause note di questo problema:

Hai effettuato l'autenticazione per una regione diversa

Le richieste di autenticazione sono legate a regioni specifiche e non possono essere utilizzate in regioni diverse. Ad esempio, se ottieni un token di autorizzazione dagli Stati Uniti occidentali (Oregon), non puoi utilizzarlo per l'autenticazione dei tuoi repository negli Stati Uniti orientali (Virginia settentrionale). Per risolvere il problema, assicurati di aver recuperato un token di autenticazione dalla stessa regione in cui esiste il repository. Per ulteriori informazioni, consulta Autenticazione del registro privato in Amazon ECR.

Hai autenticato il push in un repository per cui non disponi delle autorizzazioni

Non disponi delle autorizzazioni necessarie per eseguire il push al repository. Per ulteriori informazioni, consulta Politiche di repository privato in Amazon ECR.

Il tuo token è scaduto

Il periodo di scadenza del token di autorizzazione predefinito per i token ottenuti tramite l'operazione GetAuthorizationToken è 12 ore.

Bug nella gestione credenziali wincred

Alcune versioni di Docker per Windows utilizzano una gestione credenziali denominata wincred, he non è in grado di gestire correttamente il comando di login di Docker generato da aws ecr get-login-password (per ulteriori informazioni, consulta https://github.com/docker/docker/issues/22910). Puoi eseguire il comando di login di Docker ottenuto, ma quando tenti di inviare o estrarre immagini, questi comandi non vanno a buon fine. Per risolvere questo bug, rimuovi lo schema https:// dall'argomento del registro nel comando di login di Docker che risulta da aws ecr get-login-password. Di seguito viene mostrato un esempio di comando di login di Docker senza lo schema HTTPS.

docker login -u AWS -p <password> <aws_account_id>.dkr.ecr.<region>.amazonaws.com