AWS Cloud9 não está mais disponível para novos clientes. Os clientes atuais do AWS Cloud9 podem continuar usando o serviço normalmente. Saiba mais
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á.
Trabalhando com o serviço Amazon Elastic Container Registry em AWS Cloud9
Você pode acessar o serviço Amazon Elastic Container Registry (Amazon ECR) diretamente do Explorer AWS AWS Cloud9 no IDE. Você pode usar o Amazon ECR para enviar uma imagem de programa a um repositório do Amazon ECR. Para começar, siga estas etapas:
-
Crie um Dockerfile que contenha as informações necessárias para criar uma imagem.
-
Crie uma imagem com base nesse Dockerfile e marque-a para processamento.
-
Crie um repositório dentro da instância do Amazon ECR.
-
Envie a imagem marcada ao repositório.
Seções
Pré-requisitos
Antes de usar o recurso Amazon ECR do AWS Toolkit for AWS Cloud9, certifique-se primeiro de atender a esses pré-requisitos. Esses pré-requisitos estão pré-instalados no IDE para ambientes AWS Cloud9 Amazon EC2 e são necessários para acessar o AWS Cloud9 Amazon ECR.
1. Como criar um Dockerfile
O Docker usa um arquivo chamado Dockerfile para definir uma imagem que pode ser enviada e armazenada em um repositório remoto. Antes de fazer upload de uma imagem em um repositório do ECR, crie um Dockerfile e, depois, crie uma imagem com base nesse Dockerfile.
Como criar um Dockerfile
-
Para navegar até o diretório em que você deseja armazenar o Dockerfile, escolha a opção Toggle Tree (Alternar árvore) na barra de navegação esquerda do IDE do AWS Cloud9 .
-
Crie um arquivo chamado Dockerfile.
nota
AWS Cloud9 O IDE pode solicitar que você selecione um tipo de arquivo ou extensão de arquivo. Se isso ocorrer, selecione texto sem formatação. AWS Cloud9 O IDE tem uma extensão “dockerfile”. No entanto, não recomendamos usá-la. Isso porque ela pode causar conflitos com determinadas versões do Docker ou outras aplicações associadas.
Editando seu Dockerfile usando o IDE AWS Cloud9
Se o Dockerfile tiver uma extensão de arquivo, abra o menu de contexto (clique com o botão direito do mouse) do arquivo e remova a extensão. Um Dockerfile com extensões pode causar conflitos com determinadas versões do Docker ou outras aplicações associadas.
Depois que a extensão do arquivo for removida do Dockerfile:
-
Abra o Dockerfile vazio diretamente no AWS Cloud9 IDE.
-
Copie o conteúdo do exemplo a seguir em seu Dockerfile.
exemplo Modelo de imagem do Dockerfile
FROM ubuntu:22.04 # Install dependencies RUN apt-get update && \ apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && \ echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && \ echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && \ echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && \ chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Este é um Dockerfile que usa uma imagem do Ubuntu 22.04. As instruções RUN atualizam os caches do pacote. Instale os pacotes de software para o servidor Web e, depois, escreva o conteúdo “Hello World!” na raiz do documento do servidor Web. A instrução EXPOSE expõe a porta 80 do contêiner e a instrução CMD inicia o servidor Web.
-
Salve o Dockerfile.
2. Como criar uma imagem com base no Dockerfile
O Dockerfile criado contém as informações necessárias para criar uma imagem para um programa. Antes de enviar essa imagem à instância do Amazon ECR, primeiro é necessário criá-la.
Como criar uma imagem com base no Dockerfile
-
Para navegar até o diretório que contém o Dockerfile, use a CLI do Docker ou uma CLI integrada à sua instância do Docker.
-
Para criar a imagem definida no Dockerfile, execute o comando Docker build no mesmo diretório do Dockerfile.
docker build -t hello-world .
-
Para verificar se a imagem foi criada corretamente, execute o comando Docker images.
docker images --filter reference=hello-world
A saída é a seguinte:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Para executar a imagem recém-criada com base no Ubuntu 22.04, use o comando echo.
nota
Essa etapa não é necessária para criar ou enviar sua imagem. No entanto, você pode ver como a imagem do programa funciona quando é executada.
FROM ubuntu:22.04 CMD ["echo", "Hello from Docker in Cloud9"]
Depois, execute e crie o Dockerfile. Você deve executar esse comando no mesmo diretório do Dockerfile.
docker build -t hello-world . docker run --rm hello-world
A saída é a seguinte:
Hello from Docker in Cloud9
Para obter mais informações sobre o comando Docker run, consulte Docker Run reference
(Referência de execução do Docker) no site do Docker.
3. Criação de um repositório
Para fazer upload de sua imagem na instância do Amazon ECR, crie um repositório onde ela possa ser armazenada.
Criação de um repositório do Amazon ECR
-
Na barra de navegação do AWS Cloud9 IDE, escolha o ícone do AWS kit de ferramentas.
-
Expanda o menu do AWS Explorer.
-
Localize Região da AWS o padrão associado ao seu Conta da AWS. Em seguida, selecione-o para ver uma lista dos serviços que estão por meio do AWS Cloud9 IDE.
-
Abra o menu de contexto (clique com o botão direito do mouse) da opção ECR para iniciar o processo de criação de um repositório. Depois, selecione Create Repository (Criar repositório).
-
Para concluir o processo, siga as instruções.
-
Depois que o processo for concluído, você poderá acessar seu novo repositório na seção ECR do menu AWS Explorer.
4. Enviar, extrair e excluir imagens
Depois de criar uma imagem do Dockerfile e criar um repositório, você poderá enviar a imagem ao repositório do Amazon ECR. Além disso, usando o AWS Explorer com o Docker e a AWS CLI, você pode fazer o seguinte:
-
Enviar uma imagem pelo repositório.
-
Excluir uma imagem que esteja armazenada no repositório.
-
Excluir o repositório.
Autenticar o Docker com o registro padrão
A autenticação é necessária para trocar dados entre instâncias do Amazon ECR e do Docker. Para autenticar o Docker com o registro:
-
Abra um terminal dentro do seu AWS Cloud9 IDE.
-
Use o get-login-passwordmétodo para se autenticar em seu registro ECR privado e inserir sua região e Conta da AWS ID.
aws ecr get-login-password \ --region <
region
> \ | docker login \ --username AWS \ --password-stdin <aws_account_id
>.dkr.ecr.<region>.amazonaws.comImportante
No comando anterior, substitua
region
eAWS_account_id
pelas informações específicas da sua Conta da AWS. Um valor deregion
válido é us-east-1.
Marcar e enviar uma imagem ao repositório
Depois de autenticar o Docker com sua instância de AWS, envie uma imagem para o seu repositório.
-
Use o comando docker images para visualizar as imagens que você armazenou localmente e identificar a que você deseja marcar.
docker images
A saída é a seguinte:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest e9ffedc8c286 4 minutes ago 241MB
-
Marque a imagem com o comando Docker tag.
docker tag hello-world:latest
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latest -
Envie a imagem marcada ao repositório com o comando Docker push.
Importante
Certifique-se de que o nome do seu repositório local seja o mesmo do seu repositório AWS Amazon EC2. Neste exemplo, os dois repositórios devem ter o nome
hello-world
. Para obter mais informações sobre como enviar imagens com o Docker, consulte Envio de uma imagem do Docker.docker push
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestA saída é a seguinte:
The push refers to a repository [
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world] (len: 1) e9ae3c220b23: Pushed a6785352b25c: Pushed 0998bf8fb9e9: Pushed 0a85502c06c9: Pushed latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b size: 6774
Depois que sua imagem marcada for carregada com sucesso no seu repositório, atualize o AWS Toolkit escolhendo Refresh Explorer na guia Explorer. AWS Em seguida, fica visível no menu AWS Explorer no AWS Cloud9 IDE.
Extrair uma imagem do Amazon ECR
-
Você pode extrair uma imagem para a instância local do comando Docker tag.
docker pull
AWS_account_id
.dkr.ecr.region
.amazonaws.com/hello-world:latestA saída é a seguinte:
azonaws.com/hello-world:latest latest: Pulling from hello-world Digest: sha256:e02c521fd65eae4ef1acb746883df48de85d55fc85a4172a09a124b11b339f5e Status: Image is up to date for 922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world.latest
Excluir uma imagem do repositório do Amazon ECR
Há dois métodos para excluir uma imagem do AWS Cloud9 IDE. O primeiro método é usar o AWS Explorer.
-
No AWS Explorer, expanda o menu ECR.
-
Expanda o repositório do qual deseja excluir uma imagem.
-
Abra o menu de contexto (clique com o botão direito do mouse) da tag associada à imagem que você deseja excluir.
-
Para excluir todas as imagens armazenadas que estão associadas a essa tag, escolha Delete Tag… (Excluir tag…).
Excluindo uma imagem usando a AWS CLI
-
Você também pode excluir uma imagem do seu repositório com o comando AWS ecr. batch-delete-image
aws ecr batch-delete-image \ --repository-name
hello-world
\ --image-ids imageTag=latestA saída é a seguinte:
{ "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Excluir uma imagem do repositório pela instância do Amazon ECR
Há dois métodos para excluir um repositório do AWS Cloud9 IDE. O primeiro método é usar o AWS Explorer:
-
No AWS Explorer, expanda o menu ECR.
-
Abra o menu de contexto (clique com o botão direito do mouse) do repositório que você deseja excluir.
-
Escolha Delete Repository… (Excluir repositório…).
Excluindo um repositório Amazon ECR da CLI AWS
-
É possível excluir um repositório com o comando AWS ecr delete-repository.
nota
Normalmente, não é possível excluir um repositório sem primeiro excluir as imagens contidas nele. No entanto, se adicionar a sinalização --force, você poderá excluir um repositório e todas as respectivas imagens em uma única etapa.
aws ecr delete-repository \ --repository-name
hello-world
\ --forceA saída é a seguinte:
--repository-name hello-world --force { "repository": { "repositoryUri": "922327013870.dkr.ecr.us-west-2.amazonaws.com/hello-world", "registryId": "922327013870", "imageTagMutability": "MUTABLE", "repositoryArn": "arn:aws:ecr:us-west-2:922327013870:repository/hello-world", "repositoryName": "hello-world", "createdAt": 1664469874.0 } }