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 exemplo, 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 Console de gerenciamento da AWS em vez de a AWS CLI, consulte Criar um repositório privado do Amazon ECR para armazenar imagens.
Para obter mais informações sobre as outras ferramentas disponíveis para gerenciar seus recursos da AWS, inclusive os diferentes AWS SDKs, os toolkits do IDE e as ferramentas da linha de comando do Windows PowerShell, consulte http://aws.amazon.com/tools/
Pré-requisitos
Se você ainda não tiver o Docker e a AWS CLI mais recentes instalados e prontos para uso, use as etapas a seguir para instalar essas duas ferramentas.
Instalar o AWS CLI
Para usar a AWS CLI com o Amazon ECR, instale a versão mais recente da AWS CLI. 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ê já usa o Amazon EC2, 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 instância do Amazon EC2 usando uma AMI do Amazon Linux 2023
-
Inicie uma instância com a mais recente AMI do Amazon Linux 2023. Para obter mais informações, consulte Iniciar uma instância no Manual do usuário do Amazon EC2.
-
Conecte-se à sua instância. Para obter mais informações, consulte Conectar-se à sua instância do Linux no Manual do usuário do Amazon EC2.
-
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-userao 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 grupodockerapropriadas. -
Verifique se o
ec2-userpode executar comandos do Docker semsudo.docker infonota
Em alguns casos, pode ser necessário reinicializar sua instância para fornecer permissões para o
ec2-useracessar 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, crie uma imagem do Docker de uma aplicação Web simples e teste-a no sistema ou na instância do Amazon EC2 local.
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
Dockerfileque 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.shEsse Dockerfile usa a imagem pública do Amazon Linux 2 hospedada no Amazon ECR Public. As instruções
RUNatualizam 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çãoEXPOSEexpõe a porta 80 do contêiner e a instruçãoCMDinicia 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-worldResultado:
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:80mapeia 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-worldnota
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 instância do EC2, esse é o valor Public DNS para o servidor, que é o mesmo endereço usado para se conectar à instância com o 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, localize o endereço IP da VM VirtualBox que está hospedando o Docker com o comando docker-machine ip, substituindo
machine-namepelo nome da máquina de docker que você está usando.docker-machine ipmachine-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-namehello-repository\ --regionregion
Etapa 3: autenticar-se no registro padrão
Depois de instalar e configurar o AWS CLI, autentique o CLI do Docker para seu registro padrão. Desta forma, o comando docker pode enviar e extrair imagens com o Amazon ECR. A AWS CLI fornece um comando get-login-password 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 --regionregion| docker login --username AWS --password-stdin.dkr.ecr.aws_account_idregion.amazonaws.com -
Get-ECRLoginCommand (AWS Tools for Windows PowerShell)
(Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin.dkr.ecr.aws_account_idregion.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 imagesResultado:
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:latestaws_account_id.dkr.ecr.region.amazonaws.com/hello-repository -
Envie a imagem.
docker pushaws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latestResultado:
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 pullaws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latest
Resultado:
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 \ --regionregion
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 \ --regionregion