Amazon ECR-Beispiele mit AWS CLI - AWS Command Line Interface

Diese Dokumentation bezieht sich AWS CLI nur auf Version 1 von. Dokumentation zu Version 2 von finden Sie im Benutzerhandbuch für Version 2. AWS CLI

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.

Amazon ECR-Beispiele mit AWS CLI

Die folgenden Codebeispiele zeigen Ihnen, wie Sie mithilfe von Amazon ECR Aktionen ausführen und allgemeine Szenarien implementieren. AWS Command Line Interface

Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Servicefunktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien und serviceübergreifenden Beispiele sehen.

Szenarien sind Codebeispiele, die Ihnen zeigen, wie Sie eine bestimmte Aufgabe ausführen können, indem Sie mehrere Funktionen innerhalb desselben Services aufrufen.

Jedes Beispiel enthält einen Link zu GitHub, wo Sie Anweisungen zum Einrichten und Ausführen des Codes im Kontext finden.

Themen

Aktionen

Das folgende Codebeispiel zeigt die Verwendungbatch-check-layer-availability.

AWS CLI

Um die Verfügbarkeit eines Layers zu überprüfen

Im folgenden batch-check-layer-availability Beispiel wird die Verfügbarkeit eines Layers mit dem Digest sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed im cluster-autoscaler Repository überprüft.

aws ecr batch-check-layer-availability \ --repository-name cluster-autoscaler \ --layer-digests sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed

Ausgabe:

{ "layers": [ { "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed", "layerAvailability": "AVAILABLE", "layerSize": 2777, "mediaType": "application/vnd.docker.container.image.v1+json" } ], "failures": [] }

Das folgende Codebeispiel zeigt die Verwendungbatch-delete-image.

AWS CLI

Beispiel 1: Um ein Bild zu löschen

Im folgenden batch-delete-image Beispiel wird ein Bild mit dem Tag precise im angegebenen Repository in der Standardregistrierung für ein Konto gelöscht.

aws ecr batch-delete-image \ --repository-name ubuntu \ --image-ids imageTag=precise

Ausgabe:

{ "failures": [], "imageIds": [ { "imageTag": "precise", "imageDigest": "sha256:19665f1e6d1e504117a1743c0a3d3753086354a38375961f2e665416ef4b1b2f" } ] }

Beispiel 2: Um mehrere Bilder zu löschen

Im folgenden batch-delete-image Beispiel werden alle Bilder gelöscht, die mit prod und team1 im angegebenen Repository markiert sind.

aws ecr batch-delete-image \ --repository-name MyRepository \ --image-ids imageTag=prod imageTag=team1

Ausgabe:

{ "imageIds": [ { "imageDigest": "sha256:123456789012", "imageTag": "prod" }, { "imageDigest": "sha256:567890121234", "imageTag": "team1" } ], "failures": [] }

Weitere Informationen finden Sie unter Löschen eines Bilds im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungbatch-get-image.

AWS CLI

Beispiel 1: Um ein Bild zu erhalten

Im folgenden batch-get-image Beispiel wird ein Bild mit dem Tag v1.13.6 in einem Repository abgerufen, das cluster-autoscaler in der Standardregistrierung für ein Konto aufgerufen wird.

aws ecr batch-get-image \ --repository-name cluster-autoscaler \ --image-ids imageTag=v1.13.6

Ausgabe:

{ "images": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageId": { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" }, "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 2777,\n \"digest\": \"sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 17743696,\n \"digest\": \"sha256:39fafc05754f195f134ca11ecdb1c9a691ab0848c697fffeb5a85f900caaf6e1\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 2565026,\n \"digest\": \"sha256:8c8a779d3a537b767ae1091fe6e00c2590afd16767aa6096d1b318d75494819f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28005981,\n \"digest\": \"sha256:c44ba47496991c9982ee493b47fd25c252caabf2b4ae7dd679c9a27b6a3c8fb7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 775,\n \"digest\": \"sha256:e2c388b44226544363ca007be7b896bcce1baebea04da23cbd165eac30be650f\"\n }\n ]\n}" } ], "failures": [] }

Beispiel 2: Um mehrere Bilder zu erhalten

Im folgenden batch-get-image Beispiel werden Details zu allen Bildern angezeigt, die mit prod und team1 im angegebenen Repository markiert sind.

aws ecr batch-get-image \ --repository-name MyRepository \ --image-ids imageTag=prod imageTag=team1

Ausgabe:

{ "images": [ { "registryId": "123456789012", "repositoryName": "MyRepository", "imageId": { "imageDigest": "sha256:123456789012", "imageTag": "prod" }, "imageManifest": "manifestExample1" }, { "registryId": "567890121234", "repositoryName": "MyRepository", "imageId": { "imageDigest": "sha256:123456789012", "imageTag": "team1" }, "imageManifest": "manifestExample2" } ], "failures": [] }

Weitere Informationen finden Sie unter Bilder im Amazon ECR-Benutzerhandbuch.

  • Einzelheiten zur API finden Sie BatchGetImagein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungcomplete-layer-upload.

AWS CLI

Um den Upload einer Bildebene abzuschließen

Im folgenden complete-layer-upload Beispiel wird der Upload einer Bildebene in das layer-test Repository abgeschlossen.

aws ecr complete-layer-upload \ --repository-name layer-test \ --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ --layer-digests 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9:48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e

Ausgabe:

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", "repositoryName": "layer-test", "registryId": "130757420319" }

Das folgende Codebeispiel zeigt die Verwendungcreate-repository.

AWS CLI

Beispiel 1: Um ein Repository zu erstellen

Im folgenden create-repository Beispiel wird ein Repository innerhalb des angegebenen Namespace in der Standardregistrierung für ein Konto erstellt.

aws ecr create-repository \ --repository-name project-a/nginx-web-app

Ausgabe:

{ "repository": { "registryId": "123456789012", "repositoryName": "sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/nginx-web-app" } }

Weitere Informationen finden Sie unter Creating a Repository im Amazon ECR-Benutzerhandbuch.

Beispiel 2: So erstellen Sie ein Repository, das mit der Unveränderlichkeit des Image-Tags konfiguriert ist

Im folgenden create-repository Beispiel wird in der Standardregistrierung für ein Konto ein Repository erstellt, das für die Unveränderlichkeit von Tags konfiguriert ist.

aws ecr create-repository \ --repository-name sample-repo \ --image-tag-mutability IMMUTABLE

Ausgabe:

{ "repository": { "registryId": "123456789012", "repositoryName": "sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/sample-repo", "imageTagMutability": "IMMUTABLE" } }

Weitere Informationen finden Sie unter Image Tag Mutability im Amazon ECR-Benutzerhandbuch.

Beispiel 3: So erstellen Sie ein Repository, das mit einer Scan-Konfiguration konfiguriert ist

Im folgenden create-repository Beispiel wird ein Repository erstellt, das so konfiguriert ist, dass es beim Image-Push in der Standardregistrierung für ein Konto einen Schwachstellenscan durchführt.

aws ecr create-repository \ --repository-name sample-repo \ --image-scanning-configuration scanOnPush=true

Ausgabe:

{ "repository": { "registryId": "123456789012", "repositoryName": "sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/sample-repo", "imageScanningConfiguration": { "scanOnPush": true } } }

Weitere Informationen finden Sie unter Bildscannen im Amazon ECR-Benutzerhandbuch.

  • Einzelheiten zur API finden Sie CreateRepositoryin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungdelete-lifecycle-policy.

AWS CLI

Um die Lebenszyklusrichtlinie für ein Repository zu löschen

Im folgenden delete-lifecycle-policy Beispiel wird die Lebenszyklusrichtlinie für das hello-world Repository gelöscht.

aws ecr delete-lifecycle-policy \ --repository-name hello-world

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "hello-world", "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Remove untagged images.\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":10},\"action\":{\"type\":\"expire\"}}]}", "lastEvaluatedAt": 0.0 }

Das folgende Codebeispiel zeigt die Verwendungdelete-repository-policy.

AWS CLI

Um die Repository-Richtlinie für ein Repository zu löschen

Im folgenden delete-repository-policy Beispiel wird die Repository-Richtlinie für das cluster-autoscaler Repository gelöscht.

aws ecr delete-repository-policy \ --repository-name cluster-autoscaler

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }

Das folgende Codebeispiel zeigt die Verwendungdelete-repository.

AWS CLI

So löschen Sie ein Repository

Das folgende delete-repository Beispiel mit Command Force löscht das angegebene Repository in der Standardregistrierung für ein Konto. Das --force Flag ist erforderlich, wenn das Repository Bilder enthält.

aws ecr delete-repository \ --repository-name ubuntu \ --force

Ausgabe:

{ "repository": { "registryId": "123456789012", "repositoryName": "ubuntu", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/ubuntu" } }

Weitere Informationen finden Sie unter Löschen eines Repositorys im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungdescribe-image-scan-findings.

AWS CLI

Um die Scanergebnisse für ein Bild zu beschreiben

Im folgenden describe-image-scan-findings Beispiel werden die Ergebnisse des Bildscans für ein Bild mithilfe des Image Digest im angegebenen Repository in der Standardregistrierung für ein Konto zurückgegeben.

aws ecr describe-image-scan-findings \ --repository-name sample-repo \ --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6

Ausgabe:

{ "imageScanFindings": { "findings": [ { "name": "CVE-2019-5188", "description": "A code execution vulnerability exists in the directory rehashing functionality of E2fsprogs e2fsck 1.45.4. A specially crafted ext4 directory can cause an out-of-bounds write on the stack, resulting in code execution. An attacker can corrupt a partition to trigger this vulnerability.", "uri": "http://people.ubuntu.com/~ubuntu-security/cve/CVE-2019-5188", "severity": "MEDIUM", "attributes": [ { "key": "package_version", "value": "1.44.1-1ubuntu1.1" }, { "key": "package_name", "value": "e2fsprogs" }, { "key": "CVSS2_VECTOR", "value": "AV:L/AC:L/Au:N/C:P/I:P/A:P" }, { "key": "CVSS2_SCORE", "value": "4.6" } ] } ], "imageScanCompletedAt": 1579839105.0, "vulnerabilitySourceUpdatedAt": 1579811117.0, "findingSeverityCounts": { "MEDIUM": 1 } }, "registryId": "123456789012", "repositoryName": "sample-repo", "imageId": { "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" }, "imageScanStatus": { "status": "COMPLETE", "description": "The scan was completed successfully." } }

Weitere Informationen finden Sie unter Bildscannen im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungdescribe-images.

AWS CLI

Um ein Bild in einem Repository zu beschreiben

Im folgenden describe-images Beispiel werden Details zu einem Bild im cluster-autoscaler Repository mit dem Tag v1.13.6 angezeigt.

aws ecr describe-images \ --repository-name cluster-autoscaler \ --image-ids imageTag=v1.13.6

Ausgabe:

{ "imageDetails": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTags": [ "v1.13.6" ], "imageSizeInBytes": 48318255, "imagePushedAt": 1565128275.0 } ] }

Das folgende Codebeispiel zeigt die Verwendungdescribe-repositories.

AWS CLI

Um die Repositorys in einer Registrierung zu beschreiben

In diesem Beispiel werden die Repositorys in der Standardregistrierung für ein Konto beschrieben.

Befehl:

aws ecr describe-repositories

Ausgabe:

{ "repositories": [ { "registryId": "012345678910", "repositoryName": "ubuntu", "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/ubuntu" }, { "registryId": "012345678910", "repositoryName": "test", "repositoryArn": "arn:aws:ecr:us-west-2:012345678910:repository/test" } ] }

Das folgende Codebeispiel zeigt die Verwendungget-authorization-token.

AWS CLI

Um ein Autorisierungstoken für Ihre Standardregistrierung zu erhalten

Mit dem folgenden get-authorization-token Beispielbefehl wird ein Autorisierungstoken für Ihre Standardregistrierung abgerufen.

aws ecr get-authorization-token

Ausgabe:

{ "authorizationData": [ { "authorizationToken": "QVdTOkN...", "expiresAt": 1448875853.241, "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" } ] }

Das folgende Codebeispiel zeigt die Verwendungget-download-url-for-layer.

AWS CLI

Um die Download-URL eines Layers abzurufen

Im folgenden get-download-url-for-layer Beispiel wird die Download-URL einer Ebene mit dem Digest sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed im cluster-autoscaler Repository angezeigt.

aws ecr get-download-url-for-layer \ --repository-name cluster-autoscaler \ --layer-digest sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed

Ausgabe:

{ "downloadUrl": "https://prod-us-west-2-starport-layer-bucket.s3.us-west-2.amazonaws.com/e501-012345678910-9cb60dc0-7284-5643-3987-da6dac0465f0/04620aac-66a5-4167-8232-55ee7ef6d565?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20190814T220617Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Credential=AKIA32P3D2JDNMVAJLGF%2F20190814%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Signature=9161345894947a1672467a0da7a1550f2f7157318312fe4941b59976239c3337", "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed" }

Das folgende Codebeispiel zeigt die Verwendungget-lifecycle-policy-preview.

AWS CLI

Um Details für eine Lifecycle-Policy-Vorschau abzurufen

Im folgenden get-lifecycle-policy-preview Beispiel wird das Ergebnis einer Lifecycle-Policy-Vorschau für das angegebene Repository in der Standardregistrierung für ein Konto abgerufen.

Befehl:

aws ecr get-lifecycle-policy-preview \ --repository-name "project-a/amazon-ecs-sample"

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\n \"rules\": [\n {\n \"rulePriority\": 1,\n \"description\": \"Expire images older than 14 days\",\n \"selection\": {\n \"tagStatus\": \"untagged\",\n \"countType\": \"sinceImagePushed\",\n \"countUnit\": \"days\",\n \"countNumber\": 14\n },\n \"action\": {\n \"type\": \"expire\"\n }\n }\n ]\n}\n", "status": "COMPLETE", "previewResults": [], "summary": { "expiringImageTotalCount": 0 } }

Weitere Informationen finden Sie unter Lebenszyklusrichtlinien im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungget-lifecycle-policy.

AWS CLI

Um eine Lebenszyklusrichtlinie abzurufen

Im folgenden get-lifecycle-policy Beispiel werden Details der Lebenszyklusrichtlinie für das angegebene Repository in der Standardregistrierung für das Konto angezeigt.

aws ecr get-lifecycle-policy \ --repository-name "project-a/amazon-ecs-sample"

Ausgabe:

{ "registryId": "123456789012", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}", "lastEvaluatedAt": 1504295007.0 }

Weitere Informationen finden Sie unter Lebenszyklusrichtlinien im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungget-login-password.

AWS CLI

Um ein Passwort abzurufen, um sich bei einer Registrierung zu authentifizieren

Im Folgenden get-login-password wird ein Passwort angezeigt, das Sie mit einem Container-Client Ihrer Wahl verwenden können, um sich bei jeder Amazon ECR-Registrierung zu authentifizieren, auf die Ihr IAM-Principal Zugriff hat.

aws ecr get-login-password

Ausgabe:

<password>

Zur Verwendung mit der Docker-CLI leiten Sie die Ausgabe des get-login-password Befehls an den docker login Befehl weiter. Stellen Sie beim Abrufen des Passworts sicher, dass Sie dieselbe Region angeben, in der sich Ihre Amazon ECR-Registrierung befindet.

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

Weitere Informationen finden Sie unter Registry Authentication im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungget-login.

AWS CLI

Um einen Docker-Login-Befehl für Ihre Standardregistrierung abzurufen

In diesem Beispiel wird ein Befehl gedruckt, mit dem Sie sich bei Ihrer standardmäßigen Amazon ECR-Registrierung anmelden können.

Befehl:

aws ecr get-login

Ausgabe:

docker login -u AWS -p <password> -e none https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com

Um sich bei der Registrierung eines anderen Kontos anzumelden

In diesem Beispiel werden ein oder mehrere Befehle gedruckt, mit denen Sie sich bei Amazon ECR-Registern anmelden können, die mit anderen Konten verknüpft sind.

Befehl:

aws ecr get-login --registry-ids 012345678910 023456789012

Ausgabe:

docker login -u <username> -p <token-1> -e none <endpoint-1> docker login -u <username> -p <token-2> -e none <endpoint-2>
  • Einzelheiten zur API finden Sie GetLoginin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungget-repository-policy.

AWS CLI

Um die Repository-Richtlinie für ein Repository abzurufen

Im folgenden get-repository-policy Beispiel werden Details zur Repository-Richtlinie für das cluster-autoscaler Repository angezeigt.

aws ecr get-repository-policy \ --repository-name cluster-autoscaler

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }

Das folgende Codebeispiel zeigt die Verwendunginitiate-layer-upload.

AWS CLI

Um einen Upload einer Bildebene zu initiieren

Im folgenden initiate-layer-upload Beispiel wird ein Upload einer Bildebene in das layer-test Repository initiiert.

aws ecr initiate-layer-upload \ --repository-name layer-test

Ausgabe:

{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }

Das folgende Codebeispiel zeigt die Verwendunglist-images.

AWS CLI

Um die Bilder in einem Repository aufzulisten

Im folgenden list-images Beispiel wird eine Liste der Bilder im cluster-autoscaler Repository angezeigt.

aws ecr list-images \ --repository-name cluster-autoscaler

Ausgabe:

{ "imageIds": [ { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.8" }, { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.7" }, { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" } ] }
  • Einzelheiten zur API finden Sie ListImagesin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunglist-tags-for-resource.

AWS CLI

Um die Tags für das Repository aufzulisten

Im folgenden list-tags-for-resource Beispiel wird eine Liste der mit dem hello-world Repository verknüpften Tags angezeigt.

aws ecr list-tags-for-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world

Ausgabe:

{ "tags": [ { "Key": "Stage", "Value": "Integ" } ] }

Das folgende Codebeispiel zeigt die Verwendungput-image-scanning-configuration.

AWS CLI

Um die Konfiguration für das Scannen von Bildern für ein Repository zu aktualisieren

Im folgenden put-image-scanning-configuration Beispiel wird die Konfiguration für das Scannen von Bildern für das angegebene Repository aktualisiert.

aws ecr put-image-scanning-configuration \ --repository-name sample-repo \ --image-scanning-configuration scanOnPush=true

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageScanningConfiguration": { "scanOnPush": true } }

Weitere Informationen finden Sie unter Bildscannen im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungput-image-tag-mutability.

AWS CLI

Um die Veränderbarkeitseinstellung für Image-Tags für ein Repository zu aktualisieren

Im folgenden put-image-tag-mutability Beispiel wird das angegebene Repository für die Unveränderlichkeit von Tags konfiguriert. Dadurch wird verhindert, dass alle Image-Tags innerhalb des Repositorys überschrieben werden.

aws ecr put-image-tag-mutability \ --repository-name hello-repository \ --image-tag-mutability IMMUTABLE

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageTagMutability": "IMMUTABLE" }

Weitere Informationen finden Sie unter Image Tag Mutability im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungput-image.

AWS CLI

Um ein Bild mit seinem Manifest neu zu taggen

Im folgenden put-image Beispiel wird ein neues Tag im hello-world Repository mit einem vorhandenen Image-Manifest erstellt.

aws ecr put-image \ --repository-name hello-world \ --image-tag 2019.08 \ --image-manifest file://hello-world.manifest.json

Inhalt von hello-world.manifest.json:

{ "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "config": { "mediaType": "application/vnd.docker.container.image.v1+json", "size": 5695, "digest": "sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980" }, "layers": [ { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 39096921, "digest": "sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 57938, "digest": "sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 423, "digest": "sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 680, "digest": "sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 162, "digest": "sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28268840, "digest": "sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 35369152, "digest": "sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 155, "digest": "sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28737, "digest": "sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 190, "digest": "sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7" }, { "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip", "size": 28748, "digest": "sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee" } ] }

Ausgabe:

{ "image": { "registryId": "130757420319", "repositoryName": "hello-world", "imageId": { "imageDigest": "sha256:8ece96b74f87652876199d83bd107d0435a196133af383ac54cb82b6cc5283ae", "imageTag": "2019.08" }, "imageManifest": "{\n \"schemaVersion\": 2,\n \"mediaType\": \"application/vnd.docker.distribution.manifest.v2+json\",\n \"config\": {\n \"mediaType\": \"application/vnd.docker.container.image.v1+json\",\n \"size\": 5695,\n \"digest\": \"sha256:cea5fe7701b7db3dd1c372f3cea6f43cdda444fcc488f530829145e426d8b980\"\n },\n \"layers\": [\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 39096921,\n \"digest\": \"sha256:d8868e50ac4c7104d2200d42f432b661b2da8c1e417ccfae217e6a1e04bb9295\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 57938,\n \"digest\": \"sha256:83251ac64627fc331584f6c498b3aba5badc01574e2c70b2499af3af16630eed\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 423,\n \"digest\": \"sha256:589bba2f1b36ae56f0152c246e2541c5aa604b058febfcf2be32e9a304fec610\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 680,\n \"digest\": \"sha256:d62ecaceda3964b735cdd2af613d6bb136a52c1da0838b2ff4b4dab4212bcb1c\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 162,\n \"digest\": \"sha256:6d93b41cfc6bf0d2522b7cf61588de4cd045065b36c52bd3aec2ba0622b2b22b\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28268840,\n \"digest\": \"sha256:6986b4d4c07932c680b3587f2eac8b0e013568c003cc23b04044628a5c5e599f\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 35369152,\n \"digest\": \"sha256:8c5ec60f10102dc8da0649d866c7c2f706e459d0bdc25c83ad2de86f4996c276\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 155,\n \"digest\": \"sha256:cde50b1c594539c5f67cbede9aef95c9ae321ccfb857f7b251b45b84198adc85\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28737,\n \"digest\": \"sha256:2e102807ab72a73fc9abf53e8c50e421bdc337a0a8afcb242176edeec65977e4\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 190,\n \"digest\": \"sha256:fc379bbd5ed37808772bef016553a297356c59b8f134659e6ee4ecb563c2f5a7\"\n },\n {\n \"mediaType\": \"application/vnd.docker.image.rootfs.diff.tar.gzip\",\n \"size\": 28748,\n \"digest\": \"sha256:021db240dfccf5a1aff19507d17c0177e5888e518acf295b52204b1825e8b7ee\"\n }\n ]\n}\n" } }
  • Einzelheiten zur API finden Sie PutImageunter AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungput-lifecycle-policy.

AWS CLI

Um eine Lebenszyklusrichtlinie zu erstellen

Im folgenden put-lifecycle-policy Beispiel wird eine Lebenszyklusrichtlinie für das angegebene Repository in der Standardregistrierung für ein Konto erstellt.

aws ecr put-lifecycle-policy \ --repository-name "project-a/amazon-ecs-sample" \ --lifecycle-policy-text "file://policy.json"

Inhalt von policy.json:

{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }

Ausgabe:

{ "registryId": "<aws_account_id>", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\"rules\":[{\"rulePriority\":1,\"description\":\"Expire images older than 14 days\",\"selection\":{\"tagStatus\":\"untagged\",\"countType\":\"sinceImagePushed\",\"countUnit\":\"days\",\"countNumber\":14},\"action\":{\"type\":\"expire\"}}]}" }

Weitere Informationen finden Sie unter Lebenszyklusrichtlinien im Amazon ECR-Benutzerhandbuch.

Das folgende Codebeispiel zeigt die Verwendungset-repository-policy.

AWS CLI

Um die Repository-Richtlinie für ein Repository festzulegen

Im folgenden set-repository-policy Beispiel wird eine in einer Datei enthaltene Repository-Richtlinie an das cluster-autoscaler Repository angehängt.

aws ecr set-repository-policy \ --repository-name cluster-autoscaler \ --policy-text file://my-policy.json

Inhalt von my-policy.json:

{ "Version" : "2008-10-17", "Statement" : [ { "Sid" : "allow public pull", "Effect" : "Allow", "Principal" : "*", "Action" : [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"allow public pull\",\n \"Effect\" : \"Allow\",\n \"Principal\" : \"*\",\n \"Action\" : [ \"ecr:BatchCheckLayerAvailability\", \"ecr:BatchGetImage\", \"ecr:GetDownloadUrlForLayer\" ]\n } ]\n}" }

Das folgende Codebeispiel zeigt die Verwendungstart-image-scan.

AWS CLI

Um einen Schwachstellenscan für ein Bild zu starten

Im folgenden start-image-scan Beispiel wird ein Image-Scan für den Image-Digest im angegebenen Repository gestartet und von diesem spezifiziert.

aws ecr start-image-scan \ --repository-name sample-repo \ --image-id imageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageId": { "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" }, "imageScanStatus": { "status": "IN_PROGRESS" } }

Weitere Informationen finden Sie unter Bildscannen im Amazon ECR-Benutzerhandbuch.

  • Einzelheiten zur API finden Sie StartImageScanin der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungstart-lifecycle-policy-preview.

AWS CLI

Um eine Lifecycle-Richtlinienvorschau zu erstellen

Im folgenden start-lifecycle-policy-preview Beispiel wird eine Lifecycle-Richtlinienvorschau erstellt, die durch eine JSON-Datei für das angegebene Repository definiert wird.

aws ecr start-lifecycle-policy-preview \ --repository-name "project-a/amazon-ecs-sample" \ --lifecycle-policy-text "file://policy.json"

Inhalt von policy.json:

{ "rules": [ { "rulePriority": 1, "description": "Expire images older than 14 days", "selection": { "tagStatus": "untagged", "countType": "sinceImagePushed", "countUnit": "days", "countNumber": 14 }, "action": { "type": "expire" } } ] }

Ausgabe:

{ "registryId": "012345678910", "repositoryName": "project-a/amazon-ecs-sample", "lifecyclePolicyText": "{\n \"rules\": [\n {\n \"rulePriority\": 1,\n \"description\": \"Expire images older than 14 days\",\n \"selection\": {\n \"tagStatus\": \"untagged\",\n \"countType\": \"sinceImagePushed\",\n \"countUnit\": \"days\",\n \"countNumber\": 14\n },\n \"action\": {\n \"type\": \"expire\"\n }\n }\n ]\n}\n", "status": "IN_PROGRESS" }

Das folgende Codebeispiel zeigt die Verwendungtag-resource.

AWS CLI

Um ein Repository zu taggen

Im folgenden tag-resource Beispiel wird ein Tag mit Schlüssel Stage und Wert Integ für das hello-world Repository festgelegt.

aws ecr tag-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ --tags Key=Stage,Value=Integ

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

  • Einzelheiten zur API finden Sie TagResourcein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendunguntag-resource.

AWS CLI

Um die Markierung eines Repositorys aufzuheben

Im folgenden untag-resource Beispiel wird das Tag mit dem Schlüssel Stage aus dem hello-world Repository entfernt.

aws ecr untag-resource \ --resource-arn arn:aws:ecr:us-west-2:012345678910:repository/hello-world \ --tag-keys Stage

Mit diesem Befehl wird keine Ausgabe zurückgegeben.

  • Einzelheiten zur API finden Sie UntagResourcein der AWS CLI Befehlsreferenz.

Das folgende Codebeispiel zeigt die Verwendungupload-layer-part.

AWS CLI

Um ein Layer-Teil hochzuladen

Im Folgenden wird ein Teil der Bildebene in das layer-test Repository upload-layer-part hochgeladen.

aws ecr upload-layer-part \ --repository-name layer-test \ --upload-id 6cb64b8a-9378-0e33-2ab1-b780fab8a9e9 \ --part-first-byte 0 \ --part-last-byte 8323314 \ --layer-part-blob file:///var/lib/docker/image/overlay2/layerdb/sha256/ff986b10a018b48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e/layer.b64

Ausgabe:

{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "registryId": "012345678910", "lastByteReceived": 8323314, "repositoryName": "layer-test" }
  • Einzelheiten zur API finden Sie UploadLayerPartin der AWS CLI Befehlsreferenz.