Trabalhando com o ECR serviço da Amazon em AWS Cloud9 - AWS Cloud9

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 ECR serviço da Amazon em AWS Cloud9

Você pode acessar o serviço Amazon Elastic Container Registry (AmazonECR) diretamente do AWS Explorer em AWS Cloud9 IDE. Você pode usar ECR a Amazon para enviar uma imagem do programa para um ECR repositório da Amazon. Para começar, siga estas etapas:

  1. Crie um Dockerfile que contenha as informações necessárias para criar uma imagem.

  2. Crie uma imagem com base nesse Dockerfile e marque-a para processamento.

  3. Crie um repositório que esteja dentro da sua ECR instância da Amazon.

  4. Envie a imagem marcada ao repositório.

Pré-requisitos

Antes de usar o ECR recurso Amazon do AWS Toolkit for AWS Cloud9, certifique-se primeiro de atender a esses pré-requisitos. Esses pré-requisitos estão pré-instalados nos EC2 ambientes da AWS Cloud9 IDE AWS Cloud9 Amazon e são necessários para acessar a 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 para um ECR repositório, crie um Dockerfile e, em seguida, crie uma imagem a partir desse Dockerfile.

Como criar um Dockerfile
  1. Para navegar até o diretório em que você deseja armazenar seu Dockerfile, escolha a opção Alternar árvore na barra de navegação esquerda do seu. AWS Cloud9 IDE

  2. Crie um arquivo chamado Dockerfile.

    nota

    AWS Cloud9 IDEpode solicitar que você selecione um tipo de arquivo ou extensão de arquivo. Se isso ocorrer, selecione texto sem formatação. AWS Cloud9 IDEtem 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 AWS Cloud9 IDE

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:

  1. Abra o Dockerfile vazio diretamente em. AWS Cloud9 IDE

  2. 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 RUNinstruções 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 EXPOSEinstrução expõe a porta 80 no contêiner e inicia o servidor web. CMD

  3. 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 para sua ECR instância da Amazon, primeiro crie a imagem.

Como criar uma imagem com base no Dockerfile
  1. Para navegar até o diretório que contém seu Dockerfile, use o Docker CLI ou um CLI que esteja integrado à sua instância do Docker.

  2. Para criar a imagem definida no Dockerfile, execute o comando Docker build no mesmo diretório do Dockerfile.

    docker build -t hello-world .
  3. 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
  4. 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 carregar sua imagem em sua ECR instância da Amazon, crie um novo repositório onde ela possa ser armazenada.

Criação de um novo ECR repositório da Amazon
  1. Na barra de AWS Cloud9 IDE navegação, escolha o ícone do AWS kit de ferramentas.

  2. Expanda o menu do AWS Explorer.

  3. 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.

  4. Abra o menu de contexto (clique com o botão direito do mouse) para a ECRopção de iniciar o processo Criar novo repositório. Depois, selecione Create Repository (Criar repositório).

  5. Para concluir o processo, siga as instruções.

  6. Depois que o processo for concluído, você poderá acessar seu novo repositório na ECRseção do menu AWS Explorer.

4. Enviar, extrair e excluir imagens

Depois de criar uma imagem do seu Dockerfile e criar um repositório, você pode enviar sua imagem para o repositório da Amazon. ECR Além disso, usando o AWS Explorer com o Docker e o 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 as instâncias da Amazon ECR e do Docker. Para autenticar o Docker com o registro:

  1. Abra um terminal dentro do seu AWS Cloud9 IDE.

  2. Use o get-login-passwordmétodo para se autenticar em seu ECR registro 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.com
    Importante

    No comando anterior, substitua region e AWS_account_id pelas informações específicas da sua Conta da AWS. Um valor de region 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.

  1. 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
  2. Marque a imagem com o comando Docker tag.

    docker tag hello-world:latest AWS_account_id.dkr.ecr.region.amazonaws.com/hello-world:latest
  3. 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 EC2 repositório AWS da Amazon. 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:latest

    A 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 em AWS Cloud9 IDE.

Extraindo uma imagem da 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:latest

    A 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
Excluindo uma imagem do seu repositório da Amazon ECR

Há dois métodos para excluir uma imagem do AWS Cloud9 IDE. O primeiro método é usar o AWS Explorer.

  1. No AWS Explorer, expanda o ECRmenu.

  2. Expanda o repositório do qual deseja excluir uma imagem.

  3. Abra o menu de contexto (clique com o botão direito do mouse) da tag associada à imagem que você deseja excluir.

  4. Para excluir todas as imagens armazenadas que estão associadas a essa tag, escolha Delete Tag… (Excluir tag…).

Excluindo uma imagem usando o 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=latest

    A saída é a seguinte:

    { "failures": [], "imageIds": [ { "imageTag": "latest", "imageDigest": "sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636b95aed25f52c89b" } ] }
Excluindo um repositório da sua instância da Amazon ECR

Há dois métodos para excluir um repositório do. AWS Cloud9 IDE O primeiro método é usar o AWS Explorer:

  1. No AWS Explorer, expanda o ECRmenu.

  2. Abra o menu de contexto (clique com o botão direito do mouse) do repositório que você deseja excluir.

  3. Escolha Delete Repository… (Excluir repositório…).

Excluindo um ECR repositório da Amazon do AWS CLI
  • É 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 \ --force

    A 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 } }