Contribuisci a migliorare questa pagina
Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.
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 inviarla 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.
-
Il motore Docker deve essere installato e configurato sul computer. Per ulteriori informazioni, consulta la sezione Installazione del motore Docker
nella documentazione di Docker. -
La versione
2.12.3o successiva oppure la versione1.27.160o successiva dell’interfaccia a riga di comando AWS (AWS CLI) installata e configurata sul dispositivo o AWS CloudShell. Per verificare la versione attuale, usaaws --version | cut -d / -f2 | cut -d ' ' -f1. I programmi di gestione dei pacchetti, comeyum,apt-geto Homebrew per macOS, spesso sono aggiornati a versioni precedenti dell’AWS CLI. Per installare la versione più recente, consulta Installing e Quick configuration with aws configure della Guida per l’utente dell’Interfaccia della linea di comando AWS. La versione della AWS CLI installata in AWS CloudShell potrebbe anche essere precedente di diverse versioni rispetto alla più recente. Per aggiornarla, consultare la pagina Installing AWS CLI to your home directory della Guida per l’utente di AWS CloudShell. -
Un endpoint VPC di interfaccia per Amazon ECR se si desidera che i nodi estraggano o trasferiscano le immagini di 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 parametri del plugin CNI di Amazon VPC per Kubernetesvalori di esempio con i tuoi valori.
-
Se non si dispone ancora di un repository Amazon ECR o di un altro repository, crearne uno a cui i nodi abbiano 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
cni-metrics-helpercon un 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. Sostituireregion-codecon qualsiasi Regione AWS supportata da Amazon ECR.aws ecr create-repository --region region-code --repository-name cni-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, visualizzare il contenuto del manifesto o del file
values.yamldel grafico. In questo modo, puoi determinare il registro, il repository e il tag da estrarre.Ad esempio, è possibile trovare la seguente riga nel file manifesto
dell’helper di parametri del plugin CNI di Amazon VPC per 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.iodi solito è il registro, ma non è specificato poiché di default 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.yamlHelm per determinare la posizione dell'immagine. Ad esempio, il file values.yamldell’helper di parametri del plugin CNI di Amazon VPC per Kubernetes include 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 si esegue l’estrazione da un registro pubblico, come la Galleria pubblica di Amazon ECR
, è possibile 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 nella pagina View Amazon container image registries for Amazon EKS add-ons. È possibile eseguire l’autenticazione a uno qualsiasi dei registri sostituendo 602401143452eregion-codecon le informazioni di un altro registro. Esiste un registro separato per ciascuna Regione AWS in cui è supportato Amazon EKS.aws ecr get-login-password --region region-code | docker login --username AWS --password-stdin 602401143452.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. Sostituire
602401143452eregion-codecon le informazioni fornite nella fase secondaria precedente.docker pull 602401143452.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.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. Sostituire
111122223333con l'ID account. Sostituireregion-codecon la Regione AWS in cui è stato creato il repository privato Amazon ECR.docker tag cni-metrics-helper:v1.12.6 111122223333.dkr.ecr.region-code.amazonaws.com/cni-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 region-code | docker login --username AWS --password-stdin 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 la sezione Invio di un'immagine Docker nella Guida per l'utente di Amazon Elastic Container Registry.
docker push 111122223333.dkr.ecr.region-code.amazonaws.com/cni-metrics-helper:v1.12.6 -
Aggiorna il file manifesto utilizzato per determinare l'immagine in un passaggio precedente con il
registry/repository:tagper l'immagine che hai inviato. Se si esegue l’installazione con un grafico Helm, spesso è possibile specificare ilregistry/repository:tag. Quando installi il grafico, specifica ilregistry/repository:tagdell'immagine che hai inviato al repository.