Esecuzione delle immagini ufficiali di Amazon ECR Public o Docker per AWS CLI - AWS Command Line Interface

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esecuzione delle immagini ufficiali di Amazon ECR Public o Docker per AWS CLI

Questo argomento descrive come eseguire, controllare la versione e configurare la AWS CLI versione 2 su Docker utilizzando l'immagine ufficiale di Amazon Elastic Container Registry Public (Amazon ECR Public) o Docker Hub. Per ulteriori informazioni su come utilizzare Docker, consulta la documentazione di Docker.

Le immagini ufficiali forniscono isolamento, portabilità e sicurezza che supportano e gestiscono AWS direttamente. Ciò consente di utilizzare la AWS CLI versione 2 in un ambiente basato su container senza dover gestire personalmente l'installazione.

Prerequisiti

È necessario che Docker sia installato. Per istruzioni sull'installazione, consulta il sito Web Docker.

Per verificare l'installazione di Docker, eseguire il comando seguente e confermare l'esistenza di output.

$ docker --version Docker version 19.03.1

Decidere tra Amazon ECR Public e Docker Hub

Ti consigliamo di utilizzare Amazon ECR Public over Docker Hub per AWS CLI le immagini. Docker Hub prevede limiti di velocità più rigorosi per i consumatori pubblici, il che può causare problemi di limitazione. Inoltre, Amazon ECR Public replica le immagini in più di una regione per fornire una forte disponibilità e gestire i problemi di interruzione delle attività regionali.

Per ulteriori informazioni sulla limitazione della velocità di Docker Hub, consulta Understanding Docker Hub Rate Limiting sul sito Web di Docker.

Esegui le immagini della versione ufficiale 2 AWS CLI

La prima volta che si utilizza il docker run comando, l'immagine più recente viene scaricata sul computer. Ogni successivo utilizzo del comando docker run viene eseguito dalla copia locale.

Per eseguire le immagini Docker della AWS CLI versione 2, usa il docker run comando.

Amazon ECR Public

L'immagine ufficiale di Amazon ECR Public AWS CLI versione 2 è ospitata su Amazon ECR Public nel aws-cli/aws-clirepository.

$ docker run --rm -it public.ecr.aws/aws-cli/aws-cli command
Docker Hub

L'immagine Docker della AWS CLI versione ufficiale 2 è ospitata su Docker Hub nel repository. amazon/aws-cli

$ docker run --rm -it amazon/aws-cli command

Ecco come funziona il comando:

  • docker run --rm -it repository/name— L'equivalente dell'eseguibile. aws Ogni volta che esegui questo comando, Docker apre un contenitore dell'immagine scaricata ed esegue il aws comando. Per impostazione predefinita, l'immagine utilizza la versione più recente della AWS CLI versione 2.

    Ad esempio, per chiamare il comando aws --version nel Docker, eseguire quanto segue.

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli --version aws-cli/2.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
    Docker Hub
    $ docker run --rm -it amazon/aws-cli --version aws-cli/2.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
  • --rm— Speciifica di pulire il contenitore dopo la chiusura del comando.

  • -it— Speciifica di aprire uno pseudo- con. TTY stdin Ciò consente di fornire input alla AWS CLI versione 2 mentre è in esecuzione in un contenitore, ad esempio utilizzando i aws configure comandi and. aws help Quando scegli se omettere-it, considera quanto segue:

    • Se state eseguendo degli script, non -it è necessario.

    • Se riscontri errori con gli script, l'omissione -it dalla chiamata Docker potrebbe risolvere il problema.

    • Se stai cercando di reindirizzare l'output, -it potrebbe causare errori e l'omissione -it dalla chiamata Docker potrebbe risolvere il problema. Se desideri mantenere il -it flag, ma desideri comunque reindirizzare l'output, la disattivazione del pager lato client AWS CLI utilizzato di default dovrebbe risolvere il problema.

Per ulteriori informazioni sul comando docker run, consulta la Guida di riferimento di Docker.

Note sulle interfacce e sulla retrocompatibilità delle immagini ufficiali

  • L'unico strumento supportato sull'immagine è il. AWS CLI Solo l'awseseguibile dovrebbe mai essere eseguito direttamente. Ad esempio, anche se less groff sono installati in modo esplicito sull'immagine, non devono essere eseguiti direttamente all'esterno di un AWS CLI comando.

  • La directory /aws di lavoro è controllata dall'utente. L'immagine non verrà scritta in questa directory, a meno che l'utente non richieda istruzioni sull'esecuzione di un AWS CLI comando.

  • Non ci sono garanzie di compatibilità con le versioni precedenti quando si fa affidamento sul tag più recente. Per garantire la compatibilità con le versioni precedenti, è necessario aggiungere un <major.minor.patch> tag specifico in quanto tali tag sono immutabili e verranno inseriti una sola volta.

Utilizzo di versioni e tag specifici

L'immagine ufficiale della AWS CLI versione 2 ha più versioni che puoi usare, a partire dalla versione. 2.0.6 Per eseguire una versione specifica della AWS CLI versione 2, aggiungi il tag appropriato al tuo docker run comando. La prima volta che usi il docker run comando con un tag, l'immagine più recente per quel tag viene scaricata sul tuo computer. Ogni successivo utilizzo del comando docker run con quel tag viene eseguito dalla copia locale.

È possibile utilizzare due tipi di tag:

  • latest— Definisce l'ultima versione della AWS CLI versione 2 per l'immagine. Ti consigliamo di utilizzare il latest tag quando desideri la versione più recente della AWS CLI versione 2. Tuttavia, non ci sono garanzie di compatibilità con le versioni precedenti quando si fa affidamento su questo tag. Il tag latest viene utilizzato per impostazione predefinita nel comando docker run. Per utilizzare esplicitamente il tag latest, aggiungere il tag al nome dell'immagine del container.

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:latest command
    Docker Hub
    $ docker run --rm -it amazon/aws-cli:latest command
  • <major.minor.patch>— Definisce una versione specifica della AWS CLI versione 2 per l'immagine. Se prevedi di utilizzare un'immagine ufficiale in produzione, ti consigliamo di utilizzare una versione specifica della AWS CLI versione 2 per garantire la compatibilità con le versioni precedenti. Ad esempio, per eseguire la versione2.0.6, aggiungi la versione al nome dell'immagine del contenitore.

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli:2.0.6 command
    Docker Hub
    $ docker run --rm -it amazon/aws-cli:2.0.6 command

Aggiorna all'ultima immagine ufficiale

Poiché l'immagine più recente viene scaricata sul computer solo la prima volta che si utilizza il docker run comando, è necessario estrarre manualmente un'immagine aggiornata. Per eseguire manualmente l'aggiornamento alla versione più recente, ti consigliamo di estrarre l'immagine latest con tag. Se si estrae l'immagine, viene scaricata la versione più recente sul computer.

Amazon ECR Public
$ docker pull public.ecr.aws/aws-cli/aws-cli:latest
Docker Hub
$ docker pull amazon/aws-cli:latest

Condividi file host, credenziali, variabili di ambiente e configurazione

Poiché la AWS CLI versione 2 viene eseguita in un contenitore, per impostazione predefinita non CLI può accedere al file system host, che include configurazione e credenziali. Per condividere il file system host, le credenziali e la configurazione nel container, montare la directory ~/.aws del sistema host sul container /root/.aws con il flag -v per il comando docker run. Ciò consente alla AWS CLI versione 2 in esecuzione nel contenitore di individuare le informazioni sul file host.

Amazon ECR Public

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli command
Docker Hub

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli command

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli command

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli command

Per ulteriori informazioni sul flag -v e sul montaggio, consulta la Guida di riferimento Docker.

Nota

Per informazioni sui credentials file config e, vedereImpostazioni dei file di configurazione e credenziali in AWS CLI.

Esempio 1: fornire credenziali e configurazione

In questo esempio, forniamo le credenziali e la configurazione dell'host quando eseguiamo il s3 ls comando per elencare i bucket in Amazon Simple Storage Service (Amazon S3). Gli esempi seguenti utilizzano la posizione predefinita per AWS CLI le credenziali e i file di configurazione, per utilizzare una posizione diversa, modificano il percorso del file.

Amazon ECR Public

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws amazon/aws-cli s3 ls

È possibile chiamare variabili di ambiente di sistema specifiche utilizzando il -e flag. Per usare una variabile di ambiente, chiamala per nome.

Amazon ECR Public

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e ENVVAR_NAME amazon/aws-cli s3 ls

Esempio 2: scaricare un file Amazon S3 sul sistema host

Per alcuni comandi della AWS CLI versione 2, puoi leggere file dal sistema host nel contenitore o scrivere file dal contenitore al sistema host.

Questo esempio illustra come scaricare l'oggetto S3 s3://aws-cli-docker-demo/hello nel file system locale montando la directory di lavoro corrente nella directory /aws del container. Scaricando l'oggetto hello nella directory /aws del container, il file viene salvato anche nella directory di lavoro corrente del sistema host.

Amazon ECR Public

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli s3 cp s3://aws-cli-docker-demo/hello .
Docker Hub

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello . download: s3://aws-cli-docker-demo/hello to ./hello

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli s3 cp s3://aws-cli-docker-demo/hello .

Per verificare che il file scaricato esista nel file system locale, eseguire quanto segue.

Linux e macOS

$ cat hello Hello from Docker!

Windows PowerShell

$ type hello Hello from Docker!

Esempio 3: utilizzo della variabile di AWS_PROFILE ambiente

È possibile chiamare variabili di ambiente di sistema specifiche utilizzando il -e flag. Chiama ogni variabile di ambiente che desideri utilizzare. In questo esempio, forniamo le credenziali dell'host, la configurazione e il AWS_PROFILE variabile di ambiente quando si esegue il s3 ls comando per elencare i bucket in Amazon Simple Storage Service (Amazon S3).

Amazon ECR Public

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE public.ecr.aws/aws-cli/aws-cli s3 ls
Docker Hub

Linux e macOS

$ docker run --rm -it -v ~/.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Prompt dei comandi di Windows

$ docker run --rm -it -v %userprofile%\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls 2020-03-25 00:30:48 aws-cli-docker-demo

Windows PowerShell

C:\> docker run --rm -it -v $env:userprofile\.aws:/root/.aws -e AWS_PROFILE amazon/aws-cli s3 ls

Abbreviare il comando docker run

Per abbreviare il docker run comando, ti suggeriamo di utilizzare la capacità del tuo sistema operativo di creare un symbolic link(collegamento simbolico) o aliasin Linux e macOS o in Windows. doskey Per impostare l'alias aws, è possibile eseguire uno dei seguenti comandi.

  • Per l'accesso di base ai comandi aws, eseguire le seguenti operazioni.

    Amazon ECR Public

    Linux e macOS

    $ alias aws='docker run --rm -it public.ecr.aws/aws-cli/aws-cli'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it public.ecr.aws/aws-cli/aws-cli $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it public.ecr.aws/aws-cli/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux e macOS

    $ alias aws='docker run --rm -it amazon/aws-cli'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it amazon/aws-cli $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • Per accedere al file system host e alle impostazioni di configurazione quando si utilizzano i comandi aws eseguire le seguenti operazioni.

    Amazon ECR Public

    Linux e macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux e macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli $args} Set-Alias -Name aws -Value AWSCLI
  • Per assegnare una versione specifica da utilizzare nell'alias aws, aggiungere il tag di versione.

    Amazon ECR Public

    Linux e macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws public.ecr.aws/aws-cli/aws-cli:2.0.6'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws public.ecr.aws/aws-cli/aws-cli:2.0.6 $args} Set-Alias -Name aws -Value AWSCLI
    Docker Hub

    Linux e macOS

    $ alias aws='docker run --rm -it -v ~/.aws:/root/.aws -v $(pwd):/aws amazon/aws-cli:2.0.6'

    Prompt dei comandi di Windows

    C:\> doskey aws=docker run --rm -it -v %userprofile%\.aws:/root/.aws -v %cd%:/aws amazon/aws-cli:2.0.6 $*

    Windows PowerShell

    C:\> Function AWSCLI {docker run --rm -it -v $env:userprofile\.aws:/root/.aws -v $pwd\aws:/aws amazon/aws-cli:2.0.6 $args} Set-Alias -Name aws -Value AWSCLI

Dopo aver impostato l'alias, puoi eseguire la AWS CLI versione 2 dall'interno di un contenitore come se fosse installata sul tuo sistema host.

$ aws --version aws-cli/2.17.20 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10