

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.

# Ein Bild in Amazon ECR durch seinen Lebenszyklus bewegen
<a name="getting-started-cli"></a>

Wenn Sie Amazon ECR zum ersten Mal verwenden, verwenden Sie die folgenden Schritte mit der Docker-CLI und dem, um ein Beispiel-Image AWS CLI zu erstellen, sich bei der Standardregistrierung zu authentifizieren und ein privates Repository zu erstellen. Senden Sie dann ein Bild in das private Repository und ziehen Sie ein Bild aus dem privaten Repository ab. Wenn Sie mit dem Beispielbild fertig sind, löschen Sie das Beispielbild und das Repository.

Informationen zur Verwendung von AWS-Managementkonsole anstelle von finden Sie unter[Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern](repository-create.md). AWS CLI

Weitere Informationen zu den anderen verfügbaren Tools für die Verwaltung Ihrer AWS Ressourcen, einschließlich der verschiedenen AWS SDKs IDE-Toolkits und der PowerShell Windows-Befehlszeilentools, finden Sie unter [http://aws.amazon.com/tools/](https://aws.amazon.com/tools/).

## Voraussetzungen
<a name="getting-started-cli-prereqs"></a>

Wenn Sie nicht die neueste Version von Docker installiert AWS CLI und einsatzbereit haben, führen Sie die folgenden Schritte aus, um diese beiden Tools zu installieren.

### Installieren Sie das AWS CLI
<a name="cli-install"></a>

Um das AWS CLI mit Amazon ECR zu verwenden, installieren Sie die neueste AWS CLI Version. Weitere Informationen finden Sie unter [Installieren der AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) im *Benutzerhandbuch von AWS Command Line Interface *.

### Installieren von Docker
<a name="cli-install-docker"></a>

Docker ist auf vielen verschiedenen Betriebssystemen verfügbar, darunter die meisten modernen Linux-Distributionen wie Ubuntu und sogar macOS und Windows. Weitere Informationen zur Installation von Docker unter einem bestimmten Betriebssystem finden Sie im [Docker-Installationshandbuch](https://docs.docker.com/engine/installation/#installation).

Für die Verwendung von Docker wird kein lokales Entwicklungssystem benötigt. Wenn Sie bereits Amazon EC2 verwenden, können Sie eine Amazon-Linux-2023-Instance starten und Docker installieren, um loszulegen.

Wenn Sie Docker bereits installiert haben, fahren Sie mit [Schritt 1: Erstellen eines Docker-Images](#cli-create-image) fort.

**So installieren Sie Docker auf einer Amazon-EC2-Instance mit einem Amazon-Linux-2023-AMI**

1. Starten Sie eine Instance mit dem neuesten Amazon-Linux-2023-AMI. Weitere Informationen finden Sie unter [Launching an Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/launching-instance.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

1. Verbinden Sie sich mit der Instance. Weitere Informationen finden Sie unter [Connect to Your Linux Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) im *Amazon EC2 EC2-Benutzerhandbuch*.

1. Aktualisieren Sie die installierten Pakete und den Cache der Paketverwaltung auf Ihrer Instance.

   ```
   sudo yum update -y
   ```

1. Installieren Sie das neueste Docker-Community Edition-Paket.

   ```
   sudo yum install docker
   ```

1. Starten Sie den Docker-Service.

   ```
   sudo service docker start
   ```

1. Fügen Sie den `ec2-user` zur Gruppe `docker` hinzu, sodass Sie Docker-Befehle ohne Verwendung von `sudo` ausführen können.

   ```
   sudo usermod -a -G docker ec2-user
   ```

1. Melden Sie sich ab und wieder an, um die neuen Berechtigungen der Gruppe `docker` zu übernehmen. Sie erreichen dies, indem Sie das aktuelle SSH-Terminalfenster schließen und sich über ein neues Terminalfenster wieder mit Ihrer Instance verbinden. Ihre neue SSH-Sitzung verfügt über die entsprechenden `docker`-Gruppenberechtigungen.

1. Überprüfen Sie, ob der `ec2-user` Docker-Befehle ohne `sudo` ausführen kann.

   ```
   docker info
   ```
**Anmerkung**  
In einigen Fällen müssen Sie möglicherweise Ihre Instance neu starten, um den `ec2-user` für den Zugriff auf den Docker-Daemon zu berechtigen. Versuchen Sie, Ihre Instance neu zu starten, wenn die folgende Fehlermeldung angezeigt wird:  

   ```
   Cannot connect to the Docker daemon. Is the docker daemon running on this host?
   ```

## Schritt 1: Erstellen eines Docker-Images
<a name="cli-create-image"></a>

In diesem Schritt werden Sie ein Docker-Image einer einfachen Webanwendung erstellen und es auf Ihrem lokalen System oder einer Amazon-EC2-Instance testen.

**So erstellen Sie ein Docker-Image einer einfachen Webanwendung**

1. Erstellen Sie eine Datei mit dem Namen `Dockerfile`. Eine Docker-Datei ist eine Manifestdatei, die das für Ihr Docker-Image zu verwendende Basis-Image sowie die Inhalte beschreibt, die Sie darauf installieren und ausführen möchten. Weitere Informationen zu Dockerfiles finden Sie unter [Dockerfile Reference](https://docs.docker.com/engine/reference/builder/).

   ```
   touch Dockerfile
   ```

1. Bearbeiten Sie die soeben von Ihnen erstellte `Dockerfile` und fügen Sie die folgenden Inhalte hinzu.

   ```
   FROM public.ecr.aws/amazonlinux/amazonlinux:latest
   
   # Install dependencies
   RUN yum update -y && \
    yum install -y httpd
   
   # Install apache and write hello world message
   RUN echo 'Hello World!' > /var/www/html/index.html
   
   # Configure apache
   RUN echo 'mkdir -p /var/run/httpd' >> /root/run_apache.sh && \
    echo 'mkdir -p /var/lock/httpd' >> /root/run_apache.sh && \
    echo '/usr/sbin/httpd -D FOREGROUND' >> /root/run_apache.sh && \
    chmod 755 /root/run_apache.sh
   
   EXPOSE 80
   
   CMD /root/run_apache.sh
   ```

   Diese Docker-Datei verwendet das öffentliche Amazon-Linux-2-Image, das auf Amazon ECR Public gehostet wird. Die `RUN`-Anweisungen aktualisieren die Caches der Paketverwaltung, installieren einige Softwarepakete für den Webserver und schreiben dann den Inhalt "Hello World\$1" in das Stammverzeichnis für Dokumente des Webservers. Die `EXPOSE`-Anweisung stellt Port 80 auf dem Container bereit, und die `CMD`-Anweisung startet den Webserver.

1. <a name="sample-docker-build-step"></a>Erstellen Sie das Docker-Image aus der Dockerfile.
**Anmerkung**  
Einige Versionen von Docker erfordern im folgenden Befehl anstelle des unten angegebenen relativen Pfads den vollständigen Pfad zu Ihrer Dockerfile.

   ```
   docker build -t hello-world .
   ```

1. Führen Sie Ihr Container-Image auf.

   ```
   docker images --filter reference=hello-world
   ```

   Ausgabe:

   ```
   REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
   hello-world         latest              e9ffedc8c286        4 minutes ago       194MB
   ```

1. Führen Sie das neu erstellte Image aus. Die Option `-p 80:80` ordnet den bereitgestellten Port 80 auf dem Container dem Port 80 auf dem Hostsystem zu. Weitere Informationen zu **docker run** finden Sie unter [Referenz zu Docker run](https://docs.docker.com/engine/reference/run/).

   ```
   docker run -t -i -p 80:80 hello-world
   ```
**Anmerkung**  
Ausgabe vom Apache-Webserver wird im Terminal-Fenster angezeigt. Sie können die Meldung „`Could not reliably determine the fully qualified domain name`“ ignorieren.

1. Öffnen Sie einen Browser und richten Sie ihn auf den Server aus, auf dem Docker ausgeführt und Ihr Container gehostet wird.
   + Wenn Sie eine EC2-Instance verwenden, ist dies der Wert für **Öffentliche DNS** für den Server. Dabei handelt es sich um dieselbe Adresse, mit der Sie eine Verbindung mit der Instance per SSH herstellen. Vergewissern Sie sich, dass die Sicherheitsgruppe für Ihre Instance eingehenden Datenverkehr auf Port 80 zulässt.
   + Wenn Sie Docker lokal ausführen, richten Sie Ihren Browser auf [http://localhost/](http://localhost/) aus.
   + Wenn Sie es **docker-machine** auf einem Windows- oder Mac-Computer verwenden, suchen Sie die IP-Adresse der VirtualBox VM, die Docker hostet, mit dem **docker-machine ip** Befehl und ersetzen *machine-name* Sie es durch den Namen des Docker-Computers, den Sie verwenden.

     ```
     docker-machine ip machine-name
     ```

   Sie sollten eine Webseite mit dem Text "Hello, World\$1" Nachricht sehen.

1. Beenden Sie den Docker-Container, indem Sie **Strg\$1C** eingeben.

## Schritt 2: Erstellen Sie ein Repository
<a name="cli-create-repository"></a>

Da Sie nun ein Image haben, das Sie an Amazon ECR pushen möchten, müssen Sie ein Repository erstellen, das dieses Image enthält. In diesem Beispiel erstellen Sie das Repository `hello-repository`, an das Sie später das `hello-world:latest`-Image per Push übertragen. Führen Sie zum Erstellen eines Repositorys den folgenden Befehl aus:

```
aws ecr create-repository \
    --repository-name hello-repository \
    --region region
```

## Schritt 3: Authentifizieren Sie sich bei Ihrer Standardregistrierung
<a name="cli-authenticate-registry"></a>

Nachdem Sie das installiert und konfiguriert haben AWS CLI, authentifizieren Sie die Docker-CLI bei Ihrer Standardregistrierung. Auf diese Weise kann der **docker**-Befehl Images mit Amazon ECR pushen und abrufen. Das AWS CLI bietet einen **get-login-password** Befehl zur Vereinfachung des Authentifizierungsprozesses.

Um Docker bei einer Amazon ECR-Registry mit zu authentifizieren get-login-password, führen Sie den Befehl aus. **aws ecr get-login-password** Verwenden Sie bei der Übergabe des Authentifizierungs-Tokens an den Befehl **docker login** den Wert `AWS` für den Benutzernamen und geben Sie die URI der Amazon-ECR-Registrierung an, bei der Sie sich authentifizieren möchten. Wenn Sie sich bei mehreren Registrierungen authentifizieren, müssen Sie den Befehl für jede Registrierung wiederholen.
**Wichtig**  
Bei einem Fehler installieren oder aktualisieren Sie auf die neueste AWS CLI-Version. Weitere Informationen finden Sie unter [Installieren der AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) im *AWS Command Line Interface -Benutzerhandbuch*.
+ [get-login-password](https://docs.aws.amazon.com/cli/latest/reference/ecr/get-login-password.html) (AWS CLI)

  ```
  aws ecr get-login-password --region region | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  ```
+ [Get- Befehl () ECRLogin](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-ECRLoginCommand.html)AWS Tools for Windows PowerShell

  ```
  (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
  ```

## Schritt 4: Pushen Sie ein Image an Amazon ECR
<a name="cli-push-image"></a>

Jetzt können Sie Ihr Image in das Amazon ECR-Repository pushen, das Sie im vorherigen Abschnitt erstellt haben. Verwenden Sie die **docker** CLI, um Bilder zu pushen, wenn die folgenden Voraussetzungen erfüllt sind:
+ Die Mindestversion von **docker** ist installiert: 1.7.
+ Das Amazon ECR-Autorisierungstoken wurde mit **docker login** konfiguriert.
+ Das Amazon ECR-Repository ist vorhanden und der Benutzer hat Zugriff auf den Push zum Repository.

Wenn diese Voraussetzungen erfüllt sind, können Sie das Image per Push an das neu erstellte Repository in der Standardregistrierung Ihres Kontos übertragen.

**So markieren und pushen Sie ein Image zu Amazon ECR**

1. Listen Sie Images auf, die Sie lokal gespeichert haben, um das Image zu identifizieren, das mit Tags versehen und gepusht werden soll.

   ```
   docker images
   ```

   Ausgabe:

   ```
   REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
   hello-world         latest              e9ffedc8c286        4 minutes ago       241MB
   ```

1. Versehen Sie Ihr Image mit Tags, um es in Ihr Repository zu pushen.

   ```
   docker tag hello-world:latest aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository
   ```

1. Übertragen Sie das Image per Push.

   ```
   docker push aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latest
   ```

   Ausgabe:

   ```
   The push refers to a repository [aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository] (len: 1)
   e9ae3c220b23: Pushed
   a6785352b25c: Pushed
   0998bf8fb9e9: Pushed
   0a85502c06c9: Pushed
   latest: digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE size: 6774
   ```

## Schritt 5: Ein Image von Amazon ECR pullen
<a name="cli-pull-image"></a>

Nachdem Ihr Bild in Ihr Amazon ECR-Repository übertragen wurde, können Sie es von anderen Speicherorten abrufen. Verwenden Sie die **docker** CLI, um Bilder abzurufen, wenn die folgenden Voraussetzungen erfüllt sind:
+ Die Mindestversion von **docker** ist installiert: 1.7.
+ Das Amazon ECR-Autorisierungstoken wurde mit **docker login** konfiguriert.
+ Das Amazon ECR-Repository ist vorhanden und der Benutzer hat Zugriff, um aus dem Repository zu pullen.

Wenn diese Voraussetzungen erfüllt sind, können Sie das Image pullen. Um Ihr Beispiel-Image von Amazon ECR zu beziehen, führen Sie folgenden Befehl aus:

```
docker pull aws_account_id.dkr.ecr.region.amazonaws.com/hello-repository:latest
```

Ausgabe:

```
latest: Pulling from hello-repository
0a85502c06c9: Pull complete
0998bf8fb9e9: Pull complete
a6785352b25c: Pull complete
e9ae3c220b23: Pull complete
Digest: sha256:215d7e4121b30157d8839e81c4e0912606fca105775bb0636EXAMPLE
Status: Downloaded newer image for aws_account_id.dkr.region.amazonaws.com/hello-repository:latest
```

## Schritt 6: Löschen eines Images
<a name="cli-delete-image"></a>

Wenn Sie ein Bild in einem Ihrer Repositorys nicht mehr benötigen, können Sie das Bild löschen. Um ein Bild zu löschen, geben Sie das Repository an, in dem es sich befindet, und `imageTag` entweder einen `imageDigest` Oder-Wert für das Bild. Im folgenden Beispiel wird ein Bild im `hello-repository` Repository mit dem Image-Tag `latest` gelöscht. Führen Sie den folgenden Befehl aus, um Ihr Beispielbild aus dem Repository zu löschen:

```
aws ecr batch-delete-image \
      --repository-name hello-repository \
      --image-ids imageTag=latest \
      --region region
```

## Schritt 7: Löschen eines Repositorys
<a name="cli-delete-repository"></a>

Wenn Sie kein ganzes Repository mit Bildern mehr benötigen, können Sie das Repository löschen. Im folgenden Beispiel wird das `--force` Flag verwendet, um ein Repository zu löschen, das Bilder enthält. Führen Sie die folgenden Schritte aus, um ein Repository mit allen darin enthaltenen Images zu löschen:

```
aws ecr delete-repository \
      --repository-name hello-repository \
      --force \
      --region region
```