As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Mover uma imagem ao longo do seu ciclo de vida no Amazon ECR
Se você estiver usando o Amazon ECR pela primeira vez, use as etapas a seguir com a CLI do Docker e a AWS CLI para criar uma imagem de amostra, autenticar-se no registro padrão e criar um repositório privado. Em seguida, envie uma imagem por push e extraia uma imagem do repositório privado. Quando você terminar de usar a imagem de exemplo, exclua a imagem de exemplo e o repositório.
Para usar o AWS Management Console em vez do AWS CLI, consulteCriar um repositório privado do Amazon ECR para armazenar imagens.
Para obter mais informações sobre as outras ferramentas disponíveis para gerenciar seus AWS recursos, incluindo os diferentes AWS SDKs kits de ferramentas do IDE e as ferramentas de linha de PowerShell comando do Windows, consulte http://aws.amazon.com/tools/
Pré-requisitos
Se você não tiver o Docker mais recente AWS CLI instalado e pronto para uso, use as etapas a seguir para instalar essas duas ferramentas.
Instale o AWS CLI
Para usar o AWS CLI com o Amazon ECR, instale a AWS CLI versão mais recente. Para obter informações, consulte Instalar a AWS Command Line Interface no Guia do usuário da AWS Command Line Interface .
Instalar o Docker
O Docker está disponível em muitos sistemas operacionais diferentes, incluindo a maioria das distribuições modernas do Linux, como o Ubuntu, e até no MacOS e no Windows. Para obter mais informações sobre como instalar o Docker no seu sistema operacional, consulte o Guia de instalação do Docker
Não é necessário um sistema de desenvolvimento local para usar o Docker. Se você EC2 já usa a Amazon, pode iniciar uma instância do Amazon Linux 2023 e instalar o Docker para começar.
Se você já tiver um Docker instalado, vá para Etapa 1: criar uma imagem do Docker.
Para instalar o Docker em uma EC2 instância da Amazon usando uma AMI Amazon Linux 2023
-
Inicie uma instância com a mais recente AMI do Amazon Linux 2023. Para obter mais informações, consulte Lançamento de uma instância no Guia EC2 do usuário da Amazon.
-
Conecte-se à sua instância. Para obter mais informações, consulte Connect to Your Linux Instance no Amazon EC2 User Guide.
-
Atualize os pacotes instalados e o cache de pacotes em sua instância.
sudo yum update -y
-
Instale o pacote do Docker Community Edition mais recente.
sudo yum install docker
-
Inicie o serviço Docker.
sudo service docker start
-
Adicione o
ec2-user
ao grupodocker
, de modo que você possa executar comandos do Docker sem usar osudo
.sudo usermod -a -G docker ec2-user
-
Faça logout e login novamente para selecionar as novas permissões do grupo
docker
. É possível fazer isso ao fechar a janela de terminal SSH atual e se reconectar à sua instância em outra janela. Sua nova sessão SSH terá as permissões de grupodocker
apropriadas. -
Verifique se o
ec2-user
pode executar comandos do Docker semsudo
.docker info
nota
Em alguns casos, pode ser necessário reinicializar sua instância para fornecer permissões para o
ec2-user
acessar o daemon do Docker. Tente reinicializar sua instância se você vir o seguinte erro:Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Etapa 1: criar uma imagem do Docker
Nesta etapa, você cria uma imagem Docker de uma aplicação web simples e a testa em seu sistema local ou EC2 instância da Amazon.
Para criar uma imagem do Docker de um aplicativo web simples
-
Crie um arquivo chamado
Dockerfile
. Um Dockerfile é um manifesto que descreve a imagem básica a ser usada para a sua imagem do Docker e o que você deseja instalar e executar nela. Para obter mais informações sobre a Dockerfiles, visite Referência de Dockerfiles. touch Dockerfile
-
Edite o
Dockerfile
que você acabou de criar e adicione o conteúdo a seguir.FROM public.ecr.aws/amazonlinux/amazonlinux:latest # Install dependencies RUN yum update -y && \ yum install -y httpd # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \ echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Esse Dockerfile usa a imagem pública do Amazon Linux 2 hospedada no Amazon ECR Public. As instruções
RUN
atualizam os caches de pacotes, instalam alguns pacotes de software para o servidor Web e, em seguida, gravam o conteúdo de “Hello World!” na raiz do documento dos servidores Web. A instruçãoEXPOSE
expõe a porta 80 do contêiner e a instruçãoCMD
inicia o servidor Web. -
Crie a imagem do Docker do seu Dockerfile.
nota
Algumas versões do Docker podem exigir o caminho completo para o seu Dockerfile no seguinte comando, em vez de o caminho relativo mostrado abaixo.
docker build -t hello-world .
-
Liste a sua imagem do contêiner.
docker images --filter reference=hello-world
Saída:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 194MB
-
Execute a imagem recém-criada. A opção
-p 80:80
mapeia a porta 80 exposta no contêiner para a porta 80 no sistema de host. Para obter mais informações sobre o docker run, acesse a Referência de execução do Docker. docker run -t -i -p 80:80 hello-world
nota
A saída do servidor Web Apache é exibida na janela do terminal. É possível ignorar a mensagem "
Could not reliably determine the fully qualified domain name
". -
Abra um navegador e aponte para o servidor que está executando o Docker e hospedando seu contêiner.
-
Se você estiver usando uma EC2 instância, esse é o valor de DNS público para o servidor, que é o mesmo endereço usado para se conectar à instância com SSH. Certifique-se de que o security group para sua instância permita o tráfego de entrada na porta 80.
-
Se você estiver executando o Docker localmente, aponte seu navegador para http://localhost/
. -
Se você estiver usando docker-machine em um computador Windows ou Mac, encontre o endereço IP da VirtualBox VM que está hospedando o Docker com o docker-machine ip comando, substituindo-o
machine-name
pelo nome da máquina docker que você está usando.docker-machine ip
machine-name
Você deve ver uma página da Web com seu “Hello, World!” instrução.
-
-
Interrompa o contêiner do Docker digitando Ctrl+c.
Etapa 2: criar um repositório
Agora que tem uma imagem para enviar ao Amazon ECR, você precisa criar um repositório para guardá-la. Neste exemplo, você cria um repositório chamado hello-repository
para o qual enviará a imagem hello-world:latest
posteriormente. Para criar um repositório, execute o seguinte comando:
aws ecr create-repository \ --repository-name
hello-repository
\ --regionregion
Etapa 3: autenticar-se no registro padrão
Depois de instalar e configurar o AWS CLI, autentique a CLI do Docker em seu registro padrão. Desta forma, o comando docker pode enviar e extrair imagens com o Amazon ECR. O AWS CLI fornece um get-login-password comando para simplificar o processo de autenticação.
Para autenticar o Docker em um registro do Amazon ECR com get-login-password, execute o comando. aws ecr get-login-password Ao transmitir o token de autenticação para o comando docker login, use o valor AWS
para o nome de usuário, e especifique o URI de registro do Amazon ECR para o qual deseja fazer a autenticação. Se autenticar em vários registros, você deverá repetir o comando para cada registro.
Importante
Se você receber um erro, instale ou atualize para a versão mais recente da AWS CLI. Para obter mais informações, consulte Installing the AWS Command Line Interface (Instalar a AWS Command Line Interface ) no User Guide (Guia do usuário da ).
-
get-login-password (AWS CLI)
aws ecr get-login-password --region
region
| docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com -
ECRLoginComando Get- (AWS Tools for Windows PowerShell)
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin
.dkr.ecr.aws_account_id
region
.amazonaws.com
Etapa 4: enviar uma imagem ao Amazon ECR
Agora você pode enviar a imagem ao repositório do Amazon ECR que criou na seção anterior. Use a CLI do docker para enviar imagens por push após os seguintes pré-requisitos serem atendidos:
-
A versão mínima do docker está instalada: 1.7.
-
O token de autorização do Amazon ECR foi configurado com docker login.
-
O repositório do Amazon ECR existe, e o usuário tem acesso para enviar imagens ao repositório.
Depois que esses pré-requisitos forem atendidos, você poderá enviar a imagem ao repositório recém-criado no registro padrão da sua conta.
Para marcar e enviar uma imagem para o Amazon ECR
-
Liste as imagens que você armazenou localmente para identificar a imagem a ser marcada e enviada.
docker images
Saída:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Marque a imagem a ser enviada ao seu repositório.
docker tag hello-world:latest
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository -
Envie a imagem.
docker push
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository:latestSaída:
The push refers to a repository [
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE size: 6774
Etapa 5: extrair uma imagem do Amazon ECR
Depois que a imagem for enviada por push ao repositório do Amazon ECR, você poderá extraí-la de outros locais. Use a CLI do docker para extrair imagens após os seguintes pré-requisitos serem atendidos:
-
A versão mínima do docker está instalada: 1.7.
-
O token de autorização do Amazon ECR foi configurado com docker login.
-
O repositório do Amazon ECR existe, e o usuário tem acesso para extrair imagens do repositório.
Depois que esses pré-requisitos forem atendidos, você poderá extrair a imagem. Para extrair a imagem de exemplo do Amazon ECR, execute o seguinte comando:
docker pull
aws_account_id
.dkr.ecr.region
.amazonaws.com/hello-repository:latest
Saída:
latest: Pulling from hello-repository 0a85502c06c9: Pull complete 0998bf8fb9e9: Pull complete a6785352b25c: Pull complete e9ae3c220b23: Pull complete Digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE Status: Downloaded newer image foraws_account_id
.dkr.region
.amazonaws.com/hello-repository:latest
Etapa 6: excluir uma imagem
Caso não precise mais de uma imagem em um dos repositórios, você poderá excluí-la. Para excluir uma imagem, especifique o repositório em que ela está e um valor de imageTag
ou imageDigest
para imagem. O exemplo abaixo exclui uma imagem no repositório hello-repository
com a tag de imagem latest
. Para excluir a imagem de exemplo do repositório, execute o seguinte comando:
aws ecr batch-delete-image \ --repository-name hello-repository \ --image-ids imageTag=latest \ --region
region
Etapa 7: excluir um repositório
Caso não precise mais de um repositório inteiro de imagens, você pode excluí-lo. O exemplo a seguir usa o sinalizador --force
para excluir um repositório que contenha imagens. Para excluir um repositório que contém imagens (e todas as imagens contidas nele), execute o seguinte comando:
aws ecr delete-repository \ --repository-name hello-repository \ --force \ --region
region