Executar as imagens oficiais do Amazon ECR Public ou do Docker para a AWS CLI
Este tópico descreve como executar, controlar a versão e configurar a AWS CLI versão 2 no Docker usando a imagem do Amazon Elastic Container Registry Public (Amazon ECR Public) ou do Docker Hub. Para obter mais informações sobre como usar o Docker, consulte a documentação do Docker
As imagens oficiais fornecem isolamento, portabilidade e segurança aos quais a AWS oferece suporte e mantém diretamente. Isso permite usar a AWS CLI versão 2 em um ambiente baseado em contêiner sem precisar gerenciar a instalação sozinho.
Tópicos
- Pré-requisitos
- Decidir entre o Amazon ECR Public e o Docker Hub
- Executar as imagens oficiais da AWS CLI versão 2
- Observações sobre interfaces e compatibilidade com versões anteriores das imagens oficiais
- Usar versões e tags específicas
- Atualizar para a imagem oficial mais recente
- Compartilhar arquivos de host, credenciais, variáveis de ambiente e configuração
- Reduzir o comando de execução do Docker
Pré-requisitos
É necessário ter o Docker instalado. Para obter instruções de instalação, consulte o site do Docker
Para verificar a instalação do Docker, execute o seguinte comando e confirme se há uma saída.
$
docker --version
Docker version 19.03.1
Decidir entre o Amazon ECR Public e o Docker Hub
Recomendamos usar o Amazon ECR Public em vez do Docker Hub para imagens da AWS CLI. O Docker Hub tem um limite de taxa mais rígido para consumidores públicos, o que pode causar problemas de controle de utilização. Além disso, o Amazon ECR Public replica imagens em mais de uma região para fornecer sólida disponibilidade e lidar com problemas de interrupção da região.
Para obter mais informações sobre os limites de taxa do Docker Hub, consulte Understanding Docker Hub Rate Limiting
Executar as imagens oficiais da AWS CLI versão 2
Na primeira vez que você usar o comando docker run
, a imagem mais recente será baixada no computador. Cada uso subsequente do comando docker run
é executado de sua cópia local.
Para executar as imagens do Docker da AWS CLI versão 2, use o comando docker run
.
É assim que o comando funciona:
-
docker run --rm -it
: o equivalente ao executávelrepository/name
aws
. Sempre que você executar esse comando, o Docker ativará um contêiner da imagem baixada e executará o comandoaws
. Por padrão, a imagem usa a versão mais recente da AWS CLI versão 2.Por exemplo, para chamar o comando
aws --version
no Docker, execute o seguinte. -
--rm
: especifica a limpeza do contêiner após a saída do comando. -
-it
: especifica a abertura de um pseudo-TTY comstdin
. Isso permite fornecer uma entrada na AWS CLI versão 2 enquanto ela está sendo executada em um contêiner, por exemplo, usando os comandosaws configure
eaws help
. Ao escolher se deseja omitir-it
, considere o seguinte:-
Se você estiver executando scripts, não será necessário usar
-it
. -
Se você estiver enfrentando erros em seus scripts, omitir
-it
de sua chamada do Docker poderá resolver o problema. -
Se você estiver tentando canalizar a saída,
-it
poderá causar erros e omitir-it
de sua chamada do Docker poderá resolver esse problema. Se quiser manter o sinalizador-it
, mas ainda desejar canalizar a saída, desabilitar a paginação do lado do cliente que a AWS CLI usa por padrão deve resolver o problema.
-
Para obter mais informações sobre o comando docker run
, consulte o Docker reference guide
Observações sobre interfaces e compatibilidade com versões anteriores das imagens oficiais
-
A única ferramenta compatível na imagem é a AWS CLI. Somente o executável
aws
deve ser executado diretamente. Por exemplo, mesmo queless
egroff
forem explicitamente instalados na imagem, eles não deverão ser executados diretamente fora de um comando da AWS CLI. -
O diretório de trabalho
/aws
é controlado pelo usuário. A imagem não será gravada nesse diretório, a menos que seja instruído pelo usuário na execução de um comando da AWS CLI. -
Não há garantias de compatibilidade com versões anteriores quando se utiliza a etiqueta mais recente. Para garantir a compatibilidade com versões anteriores, é necessário fixar uma tag
<major.minor.patch>
específica, pois essas tags são imutáveis. Elas só serão enviadas uma vez.
Usar versões e tags específicas
A imagem oficial da AWS CLI versão 2 oferece várias versões que podem ser usadas, começando pela versão 2.0.6
. Para executar uma versão específica da AWS CLI versão 2, anexe a etiqueta apropriada ao seu comando docker run
. Na primeira vez que você usar o comando docker run
com uma tag, a imagem mais recente com essa tag será baixada no computador. Cada uso subsequente do comando docker run
com essa etiqueta é executado de sua cópia local.
É possível usar dois tipos de etiqueta:
-
latest
: define a versão mais recente da AWS CLI versão 2 para a imagem. Recomendamos usar a etiquetalatest
quando quiser a versão mais recente da AWS CLI versão 2. No entanto, não há garantias de compatibilidade com versões anteriores ao depender dessa etiqueta. A etiquetalatest
é usada por padrão no comandodocker run
. Para usar explicitamente a etiquetalatest
, anexe a etiqueta ao nome da imagem do contêiner. -
<major.minor.patch>
: define uma versão específica da AWS CLI versão 2 para a imagem. Se você planeja usar a imagem oficial na produção, recomendamos usar uma versão específica da AWS CLI versão 2 para garantir a compatibilidade com versões anteriores. Por exemplo, para executar a versão2.0.6
, anexe a versão ao nome da imagem do contêiner.
Atualizar para a imagem oficial mais recente
Como a imagem mais recente é baixada no computador somente na primeira vez que você usa o comando docker run
, é necessário extrair manualmente uma imagem atualizada. Para atualizar manualmente para a versão mais recente, recomendamos extrair a imagem marcada com a etiqueta latest
. Ao extrair a imagem, você baixa a versão mais recente no computador.
Compartilhar arquivos de host, credenciais, variáveis de ambiente e configuração
Como a AWS CLI versão 2 é executada em um contêiner, por padrão, a CLI não pode acessar o sistema de arquivos de host, que inclui a configuração e as credenciais. Para compartilhar o sistema de arquivos de host, as credenciais e a configuração com o contêiner, monte o diretório ~/.aws
do sistema de host no contêiner em /root/.aws
com o sinalizador -v
para o comando docker run
. Isso permite que a AWS CLI versão 2 em execução no contêiner localize informações do arquivo de host.
Para obter mais informações sobre o sinalizador -v
e a montagem, consulte o Docker reference guide
nota
Para obter mais informações sobre os arquivos config
e credentials
, consulte Configurações do arquivo de configuração e credenciais na AWS CLI.
Exemplo 1: Fornecer credenciais e configuração
Neste exemplo, estamos fornecendo a configuração e as credenciais de host ao executar o comando s3 ls
para listar os buckets no Amazon Simple Storage Service (Amazon S3). Os exemplos abaixo usam o local padrão para credenciais e arquivos de configuração da AWS CLI. Para usar um local diferente, altere o caminho do arquivo.
Você pode chamar variáveis de ambiente do sistema específicas usando o sinalizador -e
. Para usar uma variável de ambiente, chame-a pelo nome.
Exemplo 2: Baixar um arquivo do Amazon S3 no sistema de host
Para alguns comandos da AWS CLI versão 2, é possível ler arquivos do sistema de host no contêiner ou gravar arquivos do contêiner no sistema de host.
Neste exemplo, baixamos o objeto do S3
s3://aws-cli-docker-demo/hello
no sistema de arquivos local, montando o diretório de trabalho atual no diretório /aws
do contêiner. Ao baixar o objeto hello
no diretório /aws
do contêiner, o arquivo também é salvo no diretório de trabalho atual do sistema de host.
Para confirmar que o arquivo baixado existe no sistema de arquivos local, execute o seguinte.
Linux e macOS
$
cat hello
Hello from Docker!
Windows PowerShell
$
type hello
Hello from Docker!
Exemplo 3: Usar sua variável de ambiente AWS_PROFILE
Você pode chamar variáveis de ambiente do sistema específicas usando o sinalizador -e
. Chame cada variável de ambiente que gostaria de usar. Neste exemplo, estamos fornecendo credenciais de host, a configuração e a variável de ambiente AWS_PROFILE
ao executar o comando s3 ls
para listar os buckets no Amazon Simple Storage Service (Amazon S3).
Reduzir o comando de execução do Docker
Para reduzir o comando docker run
, sugerimos usar a capacidade do sistema operacional para criar um symbolic
link
alias
doskey
aws
, é possível executar um dos comandos a seguir.
-
Para obter acesso básico a comandos
aws
, execute o seguinte. -
Para obter acesso ao sistema de arquivos de host e às definições de configuração ao usar comandos
aws
, execute o indicado a seguir. -
Para atribuir uma versão específica para usar no alias
aws
, anexe a etiqueta de versão.
Depois de definir o alias, é possível executar a AWS CLI versão 2 de dentro de um contêiner como se ela estivesse instalada no sistema do host.
$
aws --version
aws-cli/2.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10