Ausführen der offiziellen Amazon ECR Public- oder Docker-Images für 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 AWS CLI

In diesem Thema wird beschrieben, wie AWS CLI Version 2 auf Docker mit dem offiziellen Amazon Elastic Container Registry Public (Amazon ECR Public) oder dem Docker Hub-Image ausgeführt, Versionskontrolle und Konfiguration durchgeführt wird. Weitere Informationen zur Verwendung von Docker finden Sie in der Dokumentation von Docker.

Offizielle Images bieten Isolierung, Portabilität und Sicherheit, die AWS direkt unterstützt und verwaltet wird. Auf diese Weise können Sie 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 die Verwendung von Amazon ECR Public über Docker Hub für AWS CLI Images. 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.

Führen Sie die offiziellen Images der AWS CLI Version 2 aus

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 der AWS CLI Version 2 auszuführen.

Amazon ECR Public

Das offizielle Amazon ECR Public-Image der 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 der AWS CLI Version 2 wird auf Docker Hub im Repository gehostet. amazon/aws-cli

$ 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 der 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.19.1 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.19.1 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 AWS CLI Version 2 bereitstellen, während sie in einem Container ausgeführt wird, z. B. mithilfe der aws help Befehle aws configure und. 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. Obwohl less sie beispielsweise explizit auf dem Image installiert groff sind, sollten sie nicht direkt außerhalb eines AWS CLI Befehls ausgeführt werden.

  • Das /aws-Arbeitsverzeichnis wird vom Benutzer gesteuert. Das Abbild schreibt nicht in dieses Verzeichnis, es sei denn, der Benutzer weist ihn dazu an, einen AWS CLI Befehl auszuführen.

  • 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 der AWS CLI Version 2 hat mehrere Versionen, die Sie verwenden können, beginnend mit Version2.0.6. Um eine bestimmte Version der AWS CLI Version 2 auszuführen, hängen 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 der 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 spezifische Version der AWS CLI Version 2 für das Image. Wenn Sie planen, ein offizielles Image in der Produktion zu verwenden, empfehlen wir Ihnen, eine bestimmte Version der AWS CLI Version 2 zu verwenden, um die 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 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. Dadurch kann die im Container ausgeführte AWS CLI Version 2 Hostdateiinformationen 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 für die Konfiguration und die 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. In den folgenden Beispielen wird der Standardspeicherort für AWS CLI Anmeldeinformationen und Konfigurationsdateien verwendet. 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-Flag 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 der AWS CLI Version 2 können Sie Dateien vom Hostsystem im Container lesen oder Dateien vom Container auf 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 Sie Ihre AWS_PROFILE Umgebungsvariable

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

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 AWS CLI Version 2 in einem Container ausführen, als ob sie auf Ihrem Hostsystem installiert wäre.

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