

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 ein privates Amazon ECR-Repository übertragen
<a name="image-push"></a>

Sie können Ihre Docker-Images, Manifestlisten und Open Container Initiative (OCI)-Images sowie kompatible Artefakte in Ihre privaten Repositories verschieben.

Amazon ECR bietet eine Möglichkeit, Ihre Bilder in andere Repositorys zu replizieren. Indem Sie in Ihren privaten Registrierungseinstellungen eine Replikationskonfiguration angeben, können Sie regionsübergreifend in Ihrer eigenen Registrierung und über verschiedene Konten hinweg replizieren. Weitere Informationen finden Sie unter [Private Registrierungseinstellungen in Amazon ECR](registry-settings.md).

**Anmerkung**  
Wenn Sie ein Bild übertragen, das derzeit archiviert ist, wird dieses Bild automatisch wiederhergestellt und aus dem Archiv entfernt. Weitere Informationen zum Archivieren und Wiederherstellen von Bildern finden Sie unter[Archivieren eines Bilds in Amazon ECR](archive_restore_image.md).

Wenn das Einhängen von Registrierungs-Blobs aktiviert ist und die Mount-Parameter enthalten sind, sucht Amazon ECR bei Push-Vorgängen automatisch nach vorhandenen Layern in Ihrer Registrierung. Wenn ein Layer bereits in einem anderen Repository innerhalb derselben Registrierung vorhanden ist, hängt Amazon ECR den vorhandenen Layer ein, anstatt ein Duplikat hochzuladen. Weitere Informationen finden Sie unter [Blob-Montage in Amazon ECR](blob-mounting.md).

**Topics**
+ [IAM-Berechtigungen für das Pushen eines Images in ein privates Amazon ECR-Repository](image-push-iam.md)
+ [Ein Docker-Image in ein privates Amazon ECR-Repository übertragen](docker-push-ecr-image.md)
+ [Übertragung eines Images mit mehreren Architekturen in ein privates Amazon ECR-Repository](docker-push-multi-architecture-image.md)
+ [Übertragung eines Helm-Diagramms in ein privates Amazon ECR-Repository](push-oci-artifact.md)

# IAM-Berechtigungen für das Pushen eines Images in ein privates Amazon ECR-Repository
<a name="image-push-iam"></a>

Benutzer benötigen IAM-Berechtigungen, um Bilder in private Amazon ECR-Repositorys zu übertragen. Gemäß der bewährten Methode der Gewährung der geringsten Rechte können Sie Zugriff auf ein bestimmtes Repository gewähren. Sie können auch Zugriff auf alle Repositorys gewähren.

Ein Benutzer muss sich bei jedem Amazon ECR-Register, in das er Images pushen möchte, authentifizieren, indem er ein Autorisierungs-Token anfordert. Amazon ECR bietet mehrere AWS verwaltete Richtlinien zur Steuerung des Benutzerzugriffs auf unterschiedlichen Ebenen. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinien für Amazon Elastic Container Registry](security-iam-awsmanpol.md).

Sie können auch Ihre eigenen IAM-Richtlinien erstellen. Die folgende IAM-Richtlinie gewährt die erforderlichen Berechtigungen für die Übertragung eines Images in ein bestimmtes Repository. Um die Berechtigungen für ein bestimmtes Repository einzuschränken, verwenden Sie den vollständigen Amazon-Ressourcennamen (ARN) des Repositorys.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecr:CompleteLayerUpload",
                "ecr:UploadLayerPart",
                "ecr:InitiateLayerUpload",
                "ecr:BatchCheckLayerAvailability",
                "ecr:PutImage",
                "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-east-1:111122223333:repository/repository-name"
        },
        {
            "Effect": "Allow",
            "Action": "ecr:GetAuthorizationToken",
            "Resource": "*"
        }
    ]
}
```

------

Die folgende IAM-Richtlinie gewährt die erforderlichen Berechtigungen für die Übertragung eines Images an alle Repositorys.

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                    "ecr:CompleteLayerUpload",
                    "ecr:GetAuthorizationToken",
                    "ecr:UploadLayerPart",
                    "ecr:InitiateLayerUpload",
                    "ecr:BatchCheckLayerAvailability",
                    "ecr:PutImage",
                    "ecr:BatchGetImage"
            ],
            "Resource": "arn:aws:ecr:us-west-2:111122223333:repository/*"
        } 
    ]
}
```

# Ein Docker-Image in ein privates Amazon ECR-Repository übertragen
<a name="docker-push-ecr-image"></a>

Sie können Ihre Container-Images mit dem Befehl **docker push** in ein Amazon ECR-Repository pushen.

Amazon ECR unterstützt auch die Erstellung und Übertragung von Docker-Manifestlisten, die für Images mit mehreren Architekturen verwendet werden. Weitere Informationen finden Sie unter [Übertragung eines Images mit mehreren Architekturen in ein privates Amazon ECR-Repository](docker-push-multi-architecture-image.md).

**So pushen Sie ein Docker-Image in ein Amazon ECR-Repository**

Das Amazon ECR-Repository muss vorhanden sein, bevor Sie das Image übertragen, oder Sie müssen eine Vorlage für die Repository-Erstellung definiert haben. Weitere Informationen erhalten Sie unter [Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern](repository-create.md) und [Vorlagen zur Steuerung von Repositorys, die während einer Pull-Through-Cache-, Push-Erstellung oder Replikationsaktion erstellt wurden](repository-creation-templates.md).

1. Authentifizieren Sie Ihren Docker-Client bei der Amazon-ECR-Registrierung, in die Sie Ihr Image übertragen möchten. Für jede verwendete Registrierung muss ein Autorisierungs-Token erhalten werden, und die Token sind 12 Stunden lang gültig. Weitere Informationen finden Sie unter [Authentifizierung bei privaten Registern in Amazon ECR](registry_auth.md).

   Um Docker bei einer Amazon-ECR-Registrierung zu authentifizieren, führen Sie den Befehl **aws ecr get-login-password** aus. 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*.

   ```
   aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
   ```

1. Wenn Ihr Image-Repository noch nicht in der Registry vorhanden ist, in die Sie Daten übertragen möchten, und Sie eine Vorlage für die Repository-Erstellung definiert haben, können Sie Ihr Image mit dem Präfix Ihrer Repository-Erstellungsvorlage und Ihrem gewünschten Repository-Namen pushen. ECR erstellt das Repository automatisch für Sie unter Verwendung der vordefinierten Einstellungen Ihrer Repository-Erstellungsvorlage.

   Wenn Sie keine passende Vorlage für die Erstellung eines Repositorys definiert haben, müssen Sie ein Repository erstellen. Für weitere Informationen siehe [Vorlagen zur Steuerung von Repositorys, die während einer Pull-Through-Cache-, Push-Erstellung oder Replikationsaktion erstellt wurden](repository-creation-templates.md) oder [Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern](repository-create.md).

1. Identifizieren Sie das zu pushende lokale Image. Führen Sie den Befehl **docker images** aus, um die Container-Images auf Ihrem System aufzulisten.

   ```
   docker images
   ```

   Sie können ein Bild anhand des *repository:tag* Werts oder der Bild-ID in der resultierenden Befehlsausgabe identifizieren.

1. <a name="image-tag-step"></a>Markieren Sie Ihr Image mit der zu verwendenden Kombination aus Amazon ECR-Registrierung, Repository und optionalem Image-Tag-Namen. Das Registrierungsformat ist `aws_account_id.dkr.ecr.region.amazonaws.com`. Der Repository-Name sollte mit dem Repository übereinstimmen, das Sie für Ihr Image erstellt haben. Wenn Sie das Image-Tag weglassen, nehmen wir an, dass das Tag `latest` ist.

   Im folgenden Beispiel wird ein lokales Bild mit der ID * e9ae3c220b23* as gekennzeichnet`aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag`.

   ```
   docker tag e9ae3c220b23 aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
   ```

1. <a name="image-push-step"></a>Pushen Sie das Image mit dem Befehl **docker push**:

   ```
   docker push aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
   ```

1. (Optional) Wenden Sie zusätzliche Tags auf Ihr Image an und übertragen Sie diese Tags an Amazon ECR, indem Sie die Schritte [Step 4](#image-tag-step) und [Step 5](#image-push-step) wiederholen.

# Übertragung eines Images mit mehreren Architekturen in ein privates Amazon ECR-Repository
<a name="docker-push-multi-architecture-image"></a>

Sie können Images mit mehreren Architekturen in ein Amazon ECR-Repository übertragen, indem Sie Docker-Manifestlisten erstellen und per Push übertragen. Eine *Manifestliste* ist eine Liste von Images, die durch Angabe eines oder mehrerer Image-Namen erstellt wird. In den meisten Fällen wird die Manifestliste aus Images erstellt, die dieselbe Funktion erfüllen, aber für unterschiedliche Betriebssysteme oder Architekturen bestimmt sind. Die Manifestliste ist nicht erforderlich. Weitere Informationen finden Sie unter [Docker-Manifest](https://docs.docker.com/engine/reference/commandline/manifest/).

Eine Manifestliste kann in einer Amazon ECS-Aufgabendefinition oder Amazon EKS-Pod-Spezifikation wie andere Amazon ECR-Images abgerufen oder referenziert werden.

 **Voraussetzungen** 
+ Aktivieren Sie in Ihrer Docker-CLI experimentelle Funktionen. Informationen zu experimentellen Funktionen finden Sie unter [Experimentelle Funktionen](https://docs.docker.com/engine/reference/commandline/cli/#experimental-features) in der Docker-Dokumentation.
+ Das Amazon ECR-Repository muss vorhanden sein, bevor Sie das Image pushen. Weitere Informationen finden Sie unter [Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern](repository-create.md).
+ Bilder müssen in Ihr Repository übertragen werden, bevor Sie das Docker-Manifest erstellen. Informationen über das Pushen eines Images finden Sie unter [Ein Docker-Image in ein privates Amazon ECR-Repository übertragen](docker-push-ecr-image.md).

**So pushen Sie ein Multi-Architektur-Docker-Image in ein Amazon ECR-Repository**

1. Authentifizieren Sie Ihren Docker-Client bei der Amazon-ECR-Registrierung, in die Sie Ihr Image übertragen möchten. Für jede verwendete Registrierung muss ein Autorisierungs-Token erhalten werden, und die Token sind 12 Stunden lang gültig. Weitere Informationen finden Sie unter [Authentifizierung bei privaten Registern in Amazon ECR](registry_auth.md).

   Um Docker bei einer Amazon-ECR-Registrierung zu authentifizieren, führen Sie den Befehl **aws ecr get-login-password** aus. 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*.

   ```
   aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin <aws_account_id>.dkr.ecr.<region>.amazonaws.com
   ```

1. Listen Sie die Images in Ihrem Repository auf und bestätigen Sie die Image-Tags.

   ```
   aws ecr describe-images --repository-name my-repository
   ```

1. Erstellen Sie die Docker-Manifestliste. Mit dem Befehl `manifest create` wird überprüft, ob sich die referenzierten Images bereits in Ihrem Repository befinden, und das Manifest lokal erstellt.

   ```
   docker manifest create aws_account_id.dkr.ecr.region.amazonaws.com/my-repository aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_one_tag aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:image_two
   ```

1. (Optional) Überprüfen Sie die Docker-Manifestliste. Auf diese Weise können Sie die Größe und den Digest für jedes Image-Manifest bestätigen, auf das in der Manifestliste verwiesen wird.

   ```
   docker manifest inspect aws_account_id.dkr.ecr.region.amazonaws.com/my-repository
   ```

1. Pushen Sie die Docker-Manifestliste in Ihr Amazon ECR-Repository.

   ```
   docker manifest push aws_account_id.dkr.ecr.region.amazonaws.com/my-repository
   ```

# Übertragung eines Helm-Diagramms in ein privates Amazon ECR-Repository
<a name="push-oci-artifact"></a>

Sie können Artefakte der Open Container Initiative (OCI) in ein Amazon ECR-Repository übertragen. Um ein Beispiel für diese Funktionalität zu sehen, verwenden Sie die folgenden Schritte, um ein Helm-Diagramm an Amazon ECR zu übertragen.

Informationen zur Verwendung Ihrer von Amazon ECR gehosteten Helm-Charts mit Amazon EKS finden Sie unter[Installation eines Helm-Diagramms auf einem Amazon EKS-Cluster](using-helm-charts-eks.md).

**So pushen Sie ein Helm-Diagramm in ein Amazon ECR-Repository**

1. Installieren Sie die neueste Version des Helm-Clients. Diese Schritte wurden mit Helm Version `3.18.6` geschrieben. Verwenden Sie Helm Version 3.9 oder höher, um die Kompatibilität mit Kubernetes-Versionen zu gewährleisten, die von Amazon EKS unterstützt werden. Weitere Informationen finden Sie unter [Installation von Helm](https://helm.sh/docs/intro/install/).

1. Verwenden Sie die folgenden Schritte, um ein Helm-Testdiagramm zu erstellen. Weitere Informationen finden Sie unter [Helm Docs - Erste Schritte](https://helm.sh/docs/chart_template_guide/getting_started/).

   1. Erstellen Sie ein Helm-Diagramm mit dem Namen `helm-test-chart` und löschen Sie den Inhalt des Verzeichnisses `templates`.

      ```
      helm create helm-test-chart
      rm -rf ./helm-test-chart/templates/*
      ```

   1. Erstellen Sie eine `ConfigMap` im Ordner. `templates`

      ```
      cd helm-test-chart/templates
      cat <<EOF > configmap.yaml
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: helm-test-chart-configmap
      data:
        myvalue: "Hello World"
      EOF
      ```

1. Verpacken Sie die Karte. Die Ausgabe enthält den Dateinamen des verpackten Diagramms, den Sie beim Pushen des Helm-Diagramms verwenden.

   ```
   cd ../..
   helm package helm-test-chart
   ```

   Ausgabe

   ```
   Successfully packaged chart and saved it to: /Users/username/helm-test-chart-0.1.0.tgz
   ```

1. Erstellen Sie ein Repository, um Ihr Helm-Diagramm zu speichern. Der Name Ihres Repositorys muss dem Namen entsprechen, den Sie bei der Erstellung des Helm-Charts in Schritt 2 verwendet haben. Weitere Informationen finden Sie unter [Erstellen eines privaten Amazon ECR-Repositorys zum Speichern von Bildern](repository-create.md).

   ```
   aws ecr create-repository \
        --repository-name helm-test-chart \
        --region us-west-2
   ```

1. Authentifizieren Sie Ihren Helm-Client bei dem Amazon-ECR-Registrierung, in das Sie Ihr Helm-Diagramm verschieben möchten. Für jede verwendete Registrierung muss ein Autorisierungs-Token erhalten werden, und die Token sind 12 Stunden lang gültig. Weitere Informationen finden Sie unter [Authentifizierung bei privaten Registern in Amazon ECR](registry_auth.md).

   ```
   aws ecr get-login-password \
        --region us-west-2 | helm registry login \
        --username AWS \
        --password-stdin aws_account_id.dkr.ecr.region.amazonaws.com
   ```

1. Drücken Sie die Steuerkarte mit dem Befehl **helm push**. Die Ausgabe sollte den Amazon ECR-Repository-URI und den SHA-Digest enthalten.

   ```
   helm push helm-test-chart-0.1.0.tgz oci://aws_account_id.dkr.ecr.region.amazonaws.com/
   ```

1. Beschreiben Sie Ihr Helm-Diagramm.

   ```
   aws ecr describe-images \
        --repository-name helm-test-chart \
        --region us-west-2
   ```

   Überprüfen Sie in der Ausgabe, ob der Parameter `artifactMediaType` den richtigen Artefakttyp angibt.

   ```
   {
       "imageDetails": [
           {
               "registryId": "aws_account_id",
               "repositoryName": "helm-test-chart",
               "imageDigest": "sha256:dd8aebdda7df991a0ffe0b3d6c0cf315fd582cd26f9755a347a52adEXAMPLE",
               "imageTags": [
                   "0.1.0"
               ],
               "imageSizeInBytes": 1620,
               "imagePushedAt": "2021-09-23T11:39:30-05:00",
               "imageManifestMediaType": "application/vnd.oci.image.manifest.v1+json",
               "artifactMediaType": "application/vnd.cncf.helm.config.v1+json"
           }
       ]
   }
   ```

1. (Optional) Installieren Sie für weitere Schritte den Helm `ConfigMap` und beginnen Sie mit Amazon EKS. Weitere Informationen finden Sie unter [Installation eines Helm-Diagramms auf einem Amazon EKS-Cluster](using-helm-charts-eks.md).