Ausführen der offiziellen Amazon-ECR-Public- oder Docker-Images für die AWS CLI - AWS Command Line Interface

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ausführen der offiziellen Amazon-ECR-Public- oder Docker-Images für die AWS CLI

In diesem Thema wird die Ausführung, Versionskontrolle und Konfiguration der AWS CLI Version 2 in Docker unter Verwendung des offiziellen Amazon Elastic Container Registry Public (Amazon ECR Public)-Image oder Docker-Hub-Image beschrieben. Weitere Informationen zur Verwendung von Docker finden Sie in der Dokumentation von Docker.

Offizielle Images bieten Isolation, Portabilität und Sicherheit, die AWS direkt unterstützt und verwaltet. Auf diese Weise können Sie die AWS CLI Version 2 in einer containerbasierten Umgebung verwenden, ohne die Installation selbst verwalten zu müssen.

Voraussetzungen

Sie müssen Docker installiert haben. Installationsanweisungen finden Sie auf der Docker-Website.

Um Ihre Installation von Docker zu überprüfen, führen Sie den folgenden Befehl aus und stellen Sie sicher, dass eine Ausgabe vorhanden ist.

$ docker --version Docker version 19.03.1

Entscheidung zwischen Amazon ECR Public und Docker Hub

Wir empfehlen, für AWS CLI-Images Amazon ECR Public dem Docker Hub vorzuziehen. Beim Docker Hub gilt eine strengere Ratenbegrenzung für öffentliche Verbraucher, wodurch es zu Drosselungsproblemen kommen kann. Darüber hinaus repliziert Amazon ECR Public Images in mehr als einer Region, um eine hohe Verfügbarkeit zu gewährleisten und Probleme bezüglich des Ausfalls einer Region zu bewältigen.

Weitere Informationen über die Docker-Hub-Ratenbegrenzung finden Sie unter Understanding Docker Hub Rate Limiting auf der Docker-Website.

Ausführen der offiziellen Images für AWS CLI Version 2

Wenn Sie den docker run-Befehl zum ersten Mal verwenden, wird das neueste Image auf Ihren Computer heruntergeladen. Jede nachfolgende Verwendung des docker run-Befehls wird von Ihrer lokalen Kopie ausgeführt.

Verwenden Sie den docker run-Befehl, um die Docker–Images für AWS CLI Version 2 auszuführen.

Amazon ECR Public

Das offizielle Amazon-ECR-Public-Image für AWS CLI Version 2 wird auf Amazon ECR Public im aws-cli/aws-cli-Repository gehostet.

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

Das offizielle Docker-Image für AWS CLI Version 2 wird auf dem Docker Hub im amazon/aws-cli-Repository gehostet.

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

So funktioniert der Befehl:

  • docker run --rm -it repository/name – Das Äquivalent zur ausführbaren Datei aws. Jedes Mal, wenn Sie diesen Befehl ausführen, erstellt Docker einen Container Ihres heruntergeladenen Images und führt Ihren aws-Befehl aus. Standardmäßig verwendet das Image die neueste Version von AWS CLI Version 2.

    Um beispielsweise den aws --version-Befehl in Docker aufzurufen, führen Sie Folgendes aus.

    Amazon ECR Public
    $ docker run --rm -it public.ecr.aws/aws-cli/aws-cli --version aws-cli/2.27.41 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.27.41 Python/3.7.3 Linux/4.9.184-linuxkit botocore/2.4.5dev10
  • --rm – Gibt an, dass der Container nach dem Beenden des Befehls bereinigt wird.

  • -it – Gibt an, ein Pseudo-TTY mit stdin zu öffnen. Auf diese Weise können Sie Eingaben für die AWS CLI Version 2 bereitstellen, während sie in einem Container ausgeführt wird, z. B. mit den aws configure- und aws help-Befehlen. Bei der Auswahl, ob -it weggelassen werden soll, ist Folgendes zu beachten:

    • Wenn Sie Skripte ausführen, ist -it nicht erforderlich.

    • Wenn bei Ihren Skripts Fehler auftreten, lassen sich diese eventuell beheben, indem Sie -it in Ihrem Docker-Aufruf weglassen.

    • Wenn Sie versuchen, die Ausgabe zu leiten, kann -it Fehler verursachen und das Weglassen von -it aus Ihrem Docker-Aufruf kann dieses Problem eventuell beheben. Wenn Sie das -it-Flag behalten, aber dennoch die Ausgabe leiten möchten, sollte das Deaktivieren des clientseitigen Pagers, den die AWS CLI standardmäßig verwendet, das Problem lösen.

Weitere Informationen zum docker run-Befehl finden Sie im Docker-Referenzhandbuch.

Hinweise zu Schnittstellen und Abwärtskompatibilität der offiziellen Images

  • Das einzige Tool, das auf dem Image unterstützt wird, ist das AWS CLI. Nur die ausführbare Datei aws sollte jemals direkt ausgeführt werden. Beispiel: Obwohl less und groff explizit auf dem Image installiert sind, sollten sie nicht direkt außerhalb eines AWS CLI-Befehl ausgeführt werden.

  • Das /aws-Arbeitsverzeichnis wird vom Benutzer gesteuert. Das Image wird nicht in dieses Verzeichnis schreiben, es sei denn, der Benutzer wird vom Benutzer durch Ausführung eines AWS CLI-Befehls dazu angewiesen.

  • Es gibt keine Abwärtskompatibilitätsgarantien, wenn Sie sich auf das neueste Tag verlassen. Um Abwärtskompatibilität zu gewährleisten, müssen Sie an ein bestimmtes Tag <major.minor.patch> anheften, da diese Tags unveränderlich sind; sie werden nur einmal übertragen.

Verwenden bestimmter Versionen und Tags

Das offizielle Image für AWS CLI Version 2 beinhaltet mehrere Versionen, die Sie verwenden können, beginnend mit Version 2.0.6. Wenn Sie eine bestimmte Version der AWS CLI Version 2 ausführen möchten, fügen Sie das entsprechende Tag an Ihren docker run-Befehl an. Wenn Sie den docker run-Befehl zum ersten Mal mit einem Tag verwenden, wird das neueste Image für dieses Tag auf Ihren Computer heruntergeladen. Jede nachfolgende Verwendung des docker run-Befehls mit diesem Tag wird von Ihrer lokalen Kopie ausgeführt.

Sie können zwei Arten von Tags verwenden:

  • latest – Definiert die neueste Version von AWS CLI Version 2 für das Image. Wir empfehlen Ihnen, das latest Tag zu verwenden, wenn Sie die neueste Version von AWS CLI Version 2 verwenden möchten. Es gibt jedoch keine Abwärtskompatibilitätsgarantien, wenn Sie sich auf dieses Tag verlassen. Das latest-Tag wird standardmäßig im docker run-Befehl verwendet. Um das latest-Tag explizit zu verwenden, fügen Sie das Tag an den Container-Image-Namen an.

    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> – Definiert eine bestimmte Version von AWS CLI Version 2 für das Image. Wenn Sie ein offizielles Image in der Produktion verwenden möchten, empfehlen wir, eine bestimmte Version von AWS CLI Version 2 zu verwenden, um Abwärtskompatibilität sicherzustellen. Wenn Sie beispielsweise Version 2.0.6 ausführen möchten, fügen Sie die Version an den Container-Image-Namen an.

    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

Aktualisieren auf das neueste offizielle Image

Da das neueste Image nur bei der ersten Verwendung des docker run-Befehls auf Ihren Computer heruntergeladen wird, müssen Sie ein aktualisiertes Image manuell abrufen. Um manuell auf die neueste Version zu aktualisieren, empfehlen wir, das mit latest markierte Image abzurufen. Wenn Sie das Image abrufen, wird die neueste Version auf Ihren Computer heruntergeladen.

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

Freigeben von Hostdateien, Anmeldeinformationen, Umgebungsvariablen und Konfiguration

Da die AWS CLI Version 2 in einem Container ausgeführt wird, kann die CLI standardmäßig nicht auf das Host-Dateisystem zugreifen, das Konfiguration und Anmeldeinformationen enthält. Wenn Sie das Host-Dateisystem, die Anmeldeinformationen und die Konfiguration für den Container freigeben möchten, mounten Sie das ~/.aws-Verzeichnis des Hostsystems in den Container unter /root/.aws mit dem an den docker run-Befehl angehängten -v-Flag. Dies ermöglicht der im Container ausgeführten AWS CLI Version 2, Hostdateiinformationen zu finden.

Amazon ECR Public

Unter Linux und macOS

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

Windows-Eingabeaufforderung

$ 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

Unter Linux und macOS

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

Windows-Eingabeaufforderung

$ 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

Weitere Informationen zum -v-Flag und zum Mounting finden Sie im Docker-Referenzhandbuch.

Anmerkung

Weitere Informationen zu config- und credentials-Dateien finden Sie unter Einstellungen der Konfigurations- und Anmeldeinformationsdatei in der AWS CLI.

Beispiel 1: Bereitstellen von Anmeldeinformationen und Konfiguration

In diesem Beispiel stellen wir Host-Anmeldeinformationen und -konfiguration durch Ausführung des s3 ls-Befehls bereit, um Ihre Buckets in der Amazon Simple Storage Service (Amazon S3) aufzulisten. Die folgenden Beispiele verwenden den Standardspeicherort für AWS CLI-Anmeldeinformationen und Konfigurationsdateien, um einen anderen Speicherort zu verwenden, ändern Sie den Dateipfad.

Amazon ECR Public

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Unter Linux und macOS

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

Windows-Eingabeaufforderung

$ 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

Sie können Umgebungsvariablen des Systems mithilfe des -e-Flags aufrufen. Um eine Umgebungsvariable zu verwenden, rufen Sie sie nach Namen auf.

Amazon ECR Public

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Beispiel 2: Download einer Amazon-S3-Datei auf Ihr Hostsystem

Bei einigen Befehlen bei der AWS CLI-Version 2 können Sie Dateien aus dem Hostsystem im Container lesen oder Dateien aus dem Container in das Hostsystem schreiben.

In diesem Beispiel laden wir das S3-Objekt s3://aws-cli-docker-demo/hello in Ihr lokales Dateisystem herunter, indem wir das aktuelle Arbeitsverzeichnis in das /aws-Verzeichnis des Containers mounten. Durch den Download des hello-Objekts in das /aws-Verzeichnis des Containers wird die Datei auch im aktuellen Arbeitsverzeichnis des Hostsystems gespeichert.

Amazon ECR Public

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Unter Linux und 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

Windows-Eingabeaufforderung

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

Führen Sie Folgendes aus, um sicherzustellen, dass die heruntergeladene Datei im lokalen Dateisystem vorhanden ist.

Unter Linux und macOS

$ cat hello Hello from Docker!

Windows PowerShell

$ type hello Hello from Docker!

Beispiel 3: Verwenden der Umgebungsvariablen AWS_PROFILE

Sie können Umgebungsvariablen des Systems mithilfe des -e-Flags aufrufen. Rufen Sie jede Umgebungsvariable auf, die Sie verwenden möchten. In diesem Beispiel stellen wir Host-Anmeldeinformationen, Konfiguration und die Umgebungsvariable AWS_PROFILE bereit, wenn wir den s3 ls-Befehl ausführen, um Ihre Buckets in Amazon Simple Storage Service (Amazon S3) aufzulisten.

Amazon ECR Public

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Unter Linux und 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

Windows-Eingabeaufforderung

$ 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

Verkürzen des Docker-Ausführungsbefehls

Um den docker run-Befehl zu verkürzen, empfehlen wir, die Funktion Ihres Betriebssystems zum Erstellen eines symbolic link (symlink) oder alias unter Linux und macOS oder doskey unter Windows zu verwenden. Um den aws-Alias festzulegen, können Sie einen der folgenden Befehle ausführen.

  • Für einfachen Zugriff auf aws-Befehle führen Sie Folgendes aus.

    Amazon ECR Public

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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
  • Für den Zugriff auf das Host-Dateisystem und die Konfigurationseinstellungen bei Verwendung von aws-Befehlen führen Sie Folgendes aus.

    Amazon ECR Public

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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
  • Wenn Sie eine bestimmte Version zuweisen möchten, die in Ihrem aws-Alias verwendet werden soll, fügen Sie Ihr Versionstag an.

    Amazon ECR Public

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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

    Unter Linux und macOS

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

    Windows-Eingabeaufforderung

    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

Nachdem Sie Ihren Alias festgelegt haben, können Sie die AWS CLI Version 2 so in einem Container ausführen, als ob sie auf Ihrem Hostsystem installiert wäre.

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