Aiutaci a migliorare questa pagina
Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Copia di un'immagine di container da un repository a un altro
In questo argomento viene descritto come estrarre un'immagine di container da un repository a cui i nodi non hanno accesso e inviare l'immagine a un repository a cui i nodi hanno accesso. Puoi inviare l'immagine ad Amazon ECR o a un repository alternativo al quale i tuoi nodi hanno accesso.
Prerequisiti
-
Il motore Docker installato e configurato sul computer. Per ulteriori informazioni, consulta Installazione del motore Docker
nella documentazione di Docker. -
La versione
2.12.3
o successive o quella1.27.160
o successive dell'AWS Command Line Interface (AWS CLI) installata e configurata sul dispositivo o in AWS CloudShell. Per verificare la versione attuale, usa
. I programmi di gestione dei pacchetti, comeaws --version | cut -d / -f2 | cut -d ' ' -f1
yum
,apt-get
o Homebrew per macOS, spesso sono aggiornati a versioni precedenti della AWS CLI. Per installare la versione più recente, consulta le sezioni Installazione, aggiornamento e disinstallazione della AWS CLI e Configurazione rapida con aws configure nella Guida per l'utente dell'AWS Command Line Interface. La versione della AWS CLI installata in AWS CloudShell potrebbe anche essere di diverse versioni precedenti alla più recente. Per aggiornarla, consulta la sezione Installazione della AWS CLI nella directory principale nella Guida per l'utente di AWS CloudShell. -
Un endpoint VPC di interfaccia per Amazon ECR se desideri che i tuoi nodi estraggano le immagini dei container o trasferiscano le immagini dei container in un repository Amazon ECR privato sulla rete di Amazon. Per ulteriori informazioni, consulta la sezione Creazione degli endpoint VPC per Amazon ECR nella Guida per l'utente di Amazon Elastic Container Registry.
Completa i passaggi seguenti per estrarre un'immagine del container da un repository e inviarla al tuo repository. Negli esempi riportati in questo argomento, viene estratta l'immagine per l'helper di argomenti del Amazon VPC CNI plugin for Kubernetes
con i tuoi valori.example values
Copia di un'immagine di container da un repository a un altro
-
Se non disponi ancora di un repository Amazon ECR o di un altro repository, creane uno a cui i tuoi nodi hanno accesso. Il seguente comando crea un repository privato Amazon ECR. Il nome di un repository privato Amazon ECR deve iniziare con una lettera. Può contenere soltanto lettere minuscole, numeri, trattini (-), trattini bassi (_) e barre (/). Per ulteriori informazioni, consulta la sezione Creazione di un repository privato nella Guida per l'utente di Amazon Elastic Container Registry.
Puoi sostituire
con un qualsiasi valore a tua scelta. Come best practice, crea un repository separato per ogni immagine. Lo consigliamo perché i tag immagine devono essere univoci all'interno di un repository. Sostituiscicni-metrics-helper
con una Regione AWS supportata da Amazon ECR.region-code
aws ecr create-repository --region
region-code
--repository-namecni-metrics-helper
-
Determina il registro, il repository e il tag (facoltativo) dell'immagine che i nodi devono estrarre. Questa informazione è nel formato
registry/repository[:tag]
.Molti degli argomenti di Amazon EKS sull'installazione delle immagini richiedono l'applicazione di un file manifesto o l'installazione dell'immagine utilizzando un grafico Helm. Tuttavia, prima di applicare un file manifesto o installare un grafico Helm, visualizza il contenuto del manifesto o del file
values.yaml
del grafico. In questo modo, puoi determinare il registro, il repository e il tag da estrarre.Ad esempio, puoi trovare la seguente riga nel file manifesto
per l'helper di parametri del Amazon VPC CNI plugin for Kubernetes . Il registro è 602401143452.dkr.ecr.us-west-2.amazonaws.com
, che è un registro privato Amazon ECR. Il repository ècni-metrics-helper
.image: "602401143452.dkr.ecr.us-west-2.amazonaws.com/cni-metrics-helper:v1.12.6"
Potresti visualizzate le seguenti varianti per la posizione dell'immagine:
-
Solo
repository-name:tag
. In questo caso,docker.io
di solito è il registro, ma non è specificato poiché per impostazione predefinita Kubernetes gli antepone un nome di repository se non viene specificato alcun registro. -
repository-name/repository-namespace/repository:tag
. Lo spazio dei nomi del repository è facoltativo, ma talvolta viene specificato dal proprietario del repository per la classificazione delle immagini. Ad esempio, tutte le immagini Amazon EC2 nella galleria pubblica Amazon ECRusano lo spazio dei nomi aws-ec2
.
Prima di installare un'immagine con Helm, visualizza il file
values.yaml
Helm per determinare la posizione dell'immagine. Ad esempio, il filevalues.yaml
per l'helper di parametri del Amazon VPC CNI plugin for Kubernetesinclude le seguenti righe. image: region: us-west-2 tag: v1.12.6 account: "602401143452" domain: "amazonaws.com"
-
-
Estrai l'immagine del container specificata nel file manifesto.
-
Se stai eseguendo l'estrazione da un registro pubblico, come ad esempio la Galleria pubblica di Amazon ECR
, puoi passare alla fase secondaria successiva poiché l'autenticazione non è richiesta. In questo esempio, esegui l'autenticazione a un registro privato di Amazon ECR contenente il repository per l'immagine dell'helper per i parametri CNI. Amazon EKS conserva l'immagine in ogni registro elencato nei Registri delle immagini del container Amazon. Puoi eseguire l'autenticazione a uno qualsiasi dei registri sostituendo
e602401143452
con le informazioni di un registro differente. Esiste un registro separato per ciascuna Regione AWS in cui Amazon EKS è supportato.region-code
aws ecr get-login-password --region
region-code
| docker login --username AWS --password-stdin602401143452
.dkr.ecr.region-code
.amazonaws.com -
Estrai l'immagine. In questo esempio, esegui l'estrazione dal registro a cui ti sei autenticato nel passaggio secondario precedente. Sostituisci
e602401143452
con le informazioni fornite nel passaggio secondario precedente.region-code
docker pull
/cni-metrics-helper:v602401143452
.dkr.ecr.region-code
.amazonaws.com1.12.6
-
-
Tagga l'immagine che hai estratto con il registro, il repository e il tag. L'esempio seguente presuppone che tu abbia estratto l'immagine dal file manifesto e la invierai al repository privato Amazon ECR creato nel primo passaggio. Sostituisci
con l'ID del tuo account. Sostituisci111122223333
con la Regione AWS in cui hai creato il repository privato di Amazon ECR.region-code
docker tag cni-metrics-helper:
v1.12.6
111122223333
.dkr.ecr.
/region-code
.amazonaws.comcni-metrics-helper
:v1.12.6
-
Esegui l'autenticazione al tuo registro. In questo esempio, esegui l'autenticazione al registro privato Amazon ECR creato nel primo passaggio. Per ulteriori informazioni, consulta la sezione Autenticazione del registro nella Guida per l'utente di Amazon Elastic Container Registry.
aws ecr get-login-password --region
| docker login --username AWS --password-stdinregion-code
111122223333
.dkr.ecr.region-code
.amazonaws.com -
Invia l'immagine al tuo repository. In questo esempio, invii l'immagine al registro privato Amazon ECR creato nel primo passaggio. Per ulteriori informazioni, consulta Invio di un'immagine Docker nella Guida per l'utente di Amazon Elastic Container Registry.
docker push
111122223333
.dkr.ecr.
/region-code
.amazonaws.comcni-metrics-helper
:v1.12.6
-
Aggiorna il file manifesto utilizzato per determinare l'immagine in un passaggio precedente con il
registry/repository:tag
per l'immagine che hai inviato. Se stai eseguendo l'installazione con un grafico Helm, spesso hai la possibilità di specificare ilregistry/repository:tag
. Quando installi il grafico, specifica ilregistry/repository:tag
dell'immagine che hai inviato al repository.