Ajudar a melhorar esta página
Quer contribuir para este guia do usuário? Role até o final desta página e selecione Editar esta página no GitHub. Suas contribuições ajudarão a tornar nosso guia do usuário melhor para todos.
Copiar uma imagem de contêiner de um repositório para outro
Este tópico descreve como extrair uma imagem de contêiner de um repositório ao qual seus nós não têm acesso e enviar a imagem para um repositório ao qual seus nós têm acesso. Você pode enviar a imagem para o Amazon ECR ou para um repositório alternativo ao qual seus nós têm acesso.
Pré-requisitos
-
O mecanismo do Docker instalado e configurado no computador. Para obter instruções, consulte Instalar mecanismo do Docker
na documentação do Docker. -
A versão
2.12.3
ou superior ou a versão1.27.160
ou superior da AWS Command Line Interface (AWS CLI) instalada e configurada em seu dispositivo ou no AWS CloudShell. Para verificar sua versão atual, use
. Gerenciadores de pacotes, comoaws --version | cut -d / -f2 | cut -d ' ' -f1
yum
,apt-get
ou Homebrew para macOS, geralmente estão várias versões atrás da versão mais recente da AWS CLI. Para instalar a versão mais recente, consulte Instalar, atualizar e desinstalar a AWS CLI e Configuração rápida com o aws configure no Guia do usuário da AWS Command Line Interface. A versão da AWS CLI instalada no AWS CloudShell também pode estar várias versões atrás da versão mais recente. Para atualizá-la, consulte Instalar a AWS CLI no diretório inicial no Guia do usuário do AWS CloudShell. -
Um endpoint da VPC de interface para o Amazon ECR se você quiser que seus nós extraiam imagens de contêiner ou enviem imagens de contêiner para um repositório privado do Amazon ECR pela rede da Amazon. Para obter mais informações, consulte Criação dos endpoints da VPC para o Amazon ECR no Guia do usuário do Amazon Elastic Container Registry.
Conclua as etapas a seguir para extrair uma imagem de contêiner de um repositório e enviá-la para seu próprio repositório. Nos exemplos fornecidos a seguir neste tópico, a imagem do auxiliar de métricas do Amazon VPC CNI plugin for Kubernetes
por seus próprios valores.example values
Para copiar uma imagem de contêiner de um repositório para outro
-
Se você ainda não tem um repositório do Amazon ECR ou outro repositório, crie um ao qual os nós tenham acesso. O comando a seguir cria um repositório privado do Amazon ECR. Um nome de repositório privado do Amazon ECR deve começar com uma letra. Ele pode conter apenas letras minúsculas, números, hifens (-), sublinhados (_) e barras (/). Para obter mais informações, consulte Criar um repositório privado no Guia do usuário do Amazon Elastic Container Registry.
Você pode substituir
por qualquer valor que escolher. Como prática recomendada, crie um repositório separado para cada imagem. Recomendamos isso porque as etiquetas de imagem devem ser exclusivas em um repositório. Substituacni-metrics-helper
por uma Região da AWS compatível com o Amazon ECR.region-code
aws ecr create-repository --region
region-code
--repository-namecni-metrics-helper
-
Determine o registro, o repositório e a etiqueta (opcional) da imagem que seus nós precisam extrair. Essas informações estão no formato
registry/repository[:tag]
.Muitos dos tópicos do Amazon EKS sobre a instalação de imagens exigem que você aplique um arquivo manifesto ou instale a imagem usando um chart do Helm. No entanto, antes de aplicar um arquivo manifesto ou instalar um chart do Helm, primeiro visualize o conteúdo do manifesto ou arquivo
values.yaml
do chart. Dessa forma, é possível determinar o registro, o repositório e a etiqueta a serem extraídos.Por exemplo, é possível encontrar a seguinte linha no arquivo manifesto
para o auxiliar de métricas do Amazon VPC CNI plugin for Kubernetes . O registro é 602401143452.dkr.ecr.us-west-2.amazonaws.com
, que é um registro privado do Amazon ECR. O repositório écni-metrics-helper
.image: "602401143452.dkr.ecr.us-west-2.amazonaws.com/cni-metrics-helper:v1.12.6"
Você poderá ver as seguintes variações para o local de uma imagem:
-
Somente
repository-name:tag
. Nesse caso,docker.io
geralmente é o registro, mas não especificado, pois o Kubernetes, por padrão, pressupõe que seja um nome de repositório se nenhum Registro for especificado. -
repository-name/repository-namespace/repository:tag
. Um namespace de repositório é opcional, mas às vezes é especificado pelo proprietário do repositório para categorizar imagens. Por exemplo, todas as imagens do Amazon EC2 na Galeria Pública do Amazon ECRusam o namespace aws-ec2
.
Antes de instalar uma imagem com Helm, veja o arquivo
values.yaml
do Helm para determinar a localização da imagem. Por exemplo, o arquivovalues.yaml
para o auxiliar de métricas do Amazon VPC CNI plugin for Kubernetesinclui as linhas a seguir. image: region: us-west-2 tag: v1.12.6 account: "602401143452" domain: "amazonaws.com"
-
-
Extraia a imagem do contêiner especificada no arquivo manifesto.
-
Se você estiver extraindo de um registro público, como a Galeria pública do Amazon ECR
, é possível pular para a próxima subetapa, porque a autenticação não é necessária. Nesse exemplo, você se autentica em um registro privado do Amazon ECR que contém o repositório da imagem do auxiliar de métricas CNI. O Amazon EKS mantém a imagem em cada registro listado em Visualizar registros de imagens de contêineres da Amazon para complementos do Amazon EKS. Você pode autenticar em qualquer um dos registros substituindo
e602401143452
pelas informações de um registro diferente. Existe um registro separado para cada Região da AWS em que o Amazon EKS tem suporte.region-code
aws ecr get-login-password --region
region-code
| docker login --username AWS --password-stdin602401143452
.dkr.ecr.region-code
.amazonaws.com -
Extraia a imagem. Nesse exemplo, você extrai do registro no qual se autenticou na subetapa anterior. Substitua
e602401143452
pelas informações fornecidas na subetapa anterior.region-code
docker pull
/cni-metrics-helper:v602401143452
.dkr.ecr.region-code
.amazonaws.com1.12.6
-
-
Etiquete a imagem que você extraiu com seu registro, repositório e etiqueta. O exemplo a seguir pressupõe que você extraiu a imagem do arquivo manifesto e a enviará para o repositório privado do Amazon ECR criado na primeira etapa. Substitua
pelo ID da sua conta. Substitua111122223333
pela Região da AWS na qual você criou o repositório privado do Amazon ECR.region-code
docker tag cni-metrics-helper:
v1.12.6
111122223333
.dkr.ecr.
/region-code
.amazonaws.comcni-metrics-helper
:v1.12.6
-
Faça a autenticação em seu registro. Neste exemplo, você autentica no registro privado do Amazon ECR criado na primeira etapa. Para obter mais informações, consulte Registry authentication (Autenticação de registro) no Guia do usuário do Amazon Elastic Container Registry.
aws ecr get-login-password --region
| docker login --username AWS --password-stdinregion-code
111122223333
.dkr.ecr.region-code
.amazonaws.com -
Envie a imagem ao seu repositório. Neste exemplo, você envia a imagem ao registro privado do Amazon ECR criado na primeira etapa. Para obter mais informações, consulte Envio de uma imagem do Docker no Guia do usuário do Amazon Elastic Container Registry.
docker push
111122223333
.dkr.ecr.
/region-code
.amazonaws.comcni-metrics-helper
:v1.12.6
-
Atualize o arquivo manifesto usado para determinar a imagem em uma etapa anterior com o
registry/repository:tag
da imagem que você enviou. Se você estiver instalando com um chart do Helm, muitas vezes há uma opção para especificar oregistry/repository:tag
. Ao instalar o chart, especifique oregistry/repository:tag
da imagem que você enviou ao seu repositório.