Amazon-ECR-Beispiele unter Verwendung von AWS CLI
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie die AWS Command Line Interface mit Amazon ECR nutzen.
Aktionen sind Codeauszüge aus größeren Programmen und müssen im Kontext ausgeführt werden. Während Aktionen Ihnen zeigen, wie Sie einzelne Service-Funktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anleitungen zum Einrichten und Ausführen des Codes im Kontext finden.
Themen
Aktionen
Das folgende Codebeispiel zeigt, wie batch-check-layer-availability verwendet wird.
- AWS CLI
-
So prüfen Sie die Verfügbarkeit eines Layers
Im folgenden
batch-check-layer-availability-Beispiel wird die Verfügbarkeit eines Layers mit dem Digestsha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edimcluster-autoscaler-Repository überprüft.aws ecr batch-check-layer-availability \ --repository-namecluster-autoscaler\ --layer-digestssha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edAusgabe:
{ "layers": [ { "layerDigest": "sha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834ed", "layerAvailability": "AVAILABLE", "layerSize": 2777, "mediaType": "application/vnd.docker.container.image.v1+json" } ], "failures": [] }-
API-Details finden Sie unter BatchCheckLayerAvailability
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie batch-delete-image verwendet wird.
- AWS CLI
-
Beispiel 1: So löschen Sie ein Image
Im folgenden
batch-delete-image-Beispiel wird ein Image mit dem Tagpreciseim angegebenen Repository im Standard-Registry für ein Konto gelöscht.aws ecr batch-delete-image \ --repository-nameubuntu\ --image-idsimageTag=preciseAusgabe:
{ "failures": [], "imageIds": [ { "imageTag": "precise", "imageDigest": "sha256:19665f1e6d1e504117a1743c0a3d3753086354a38375961f2e665416ef4b1b2f" } ] }Beispiel 2: So löschen Sie mehrere Images
Im folgenden
batch-delete-image-Beispiel werden alle Images gelöscht, die mitprodundteam1im angegebenen Repository markiert sind.aws ecr batch-delete-image \ --repository-nameMyRepository\ --image-idsimageTag=prodimageTag=team1Ausgabe:
{ "imageIds": [ { "imageDigest": "sha256:123456789012", "imageTag": "prod" }, { "imageDigest": "sha256:567890121234", "imageTag": "team1" } ], "failures": [] }Weitere Informationen finden Sie unter Löschen von Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter BatchDeleteImage
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie batch-get-image verwendet wird.
- AWS CLI
-
Beispiel 1: So rufen Sie ein Image ab
Im folgenden
batch-get-image-Beispiel wird ein Image mit dem Tagv1.13.6in einem Repository mit dem Namencluster-autoscalerim Standard-Registry für ein Konto abgerufen.aws ecr batch-get-image \ --repository-namecluster-autoscaler\ --image-idsimageTag=v1.13.6Ausgabe:
{ "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: So rufen Sie mehrere Images ab
Im folgenden
batch-get-image-Beispiel werden Details aller Images angezeigt, die mitprodundteam1im angegebenen Repository markiert sind.aws ecr batch-get-image \ --repository-nameMyRepository\ --image-idsimageTag=prodimageTag=team1Ausgabe:
{ "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 Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter BatchGetImage
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie complete-layer-upload verwendet wird.
- AWS CLI
-
So schließen Sie den Upload eines Image-Layers ab
Im folgenden
complete-layer-upload-Beispiel wird der Upload eines Image-Layers in daslayer-test-Repository abgeschlossen.aws ecr complete-layer-upload \ --repository-namelayer-test\ --upload-id6cb64b8a-9378-0e33-2ab1-b780fab8a9e9\ --layer-digests6cb64b8a-9378-0e33-2ab1-b780fab8a9e9:48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323eAusgabe:
{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "layerDigest": "sha256:9a77f85878aa1906f2020a0ecdf7a7e962d57e882250acd773383224b3fe9a02", "repositoryName": "layer-test", "registryId": "130757420319" }-
API-Details finden Sie unter CompleteLayerUpload
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie create-repository verwendet wird.
- AWS CLI
-
Beispiel 1: So erstellen Sie ein Repository
Im folgenden
create-repository-Beispiel wird ein Repository innerhalb des angegebenen Namespace im Standard-Registry für ein Konto erstellt.aws ecr create-repository \ --repository-nameproject-a/sample-repoAusgabe:
{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo" } }Weitere Informationen finden Sie unter Erstellen eines Repositorys im Amazon-ECR-Benutzerhandbuch.
Beispiel 2: So erstellen Sie ein Repository, das mit der Unveränderlichkeit von Image-Tags konfiguriert ist
Im folgenden
create-repository-Beispiel wird im Standard-Registry für ein Konto ein Repository erstellt, das für die Unveränderlichkeit von Tags konfiguriert ist.aws ecr create-repository \ --repository-nameproject-a/sample-repo\ --image-tag-mutabilityIMMUTABLEAusgabe:
{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", "imageTagMutability": "IMMUTABLE" } }Weitere Informationen finden Sie unter Veränderlichkeit von Image-Tags im Amazon-ECR-Benutzerhandbuch.
Beispiel 3: So erstellen Sie ein Repository, das mit einer Scan-Konfiguration konfiguriert ist
Im folgenden
create-repository-Beispiel wird im Standard-Registry für ein Konto ein Repository erstellt, das für die Durchführung eines Scans auf Schwachstellen beim Pushen von Images konfiguriert ist.aws ecr create-repository \ --repository-nameproject-a/sample-repo\ --image-scanning-configurationscanOnPush=trueAusgabe:
{ "repository": { "registryId": "123456789012", "repositoryName": "project-a/sample-repo", "repositoryArn": "arn:aws:ecr:us-west-2:123456789012:repository/project-a/sample-repo", "imageScanningConfiguration": { "scanOnPush": true } } }Weitere Informationen finden Sie unter Scannen von Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter CreateRepository
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-lifecycle-policy verwendet wird.
- AWS CLI
-
So löschen Sie eine Lebenszyklusrichtlinie für ein Repository
Im folgenden
delete-lifecycle-policy-Beispiel wird die Lebenszyklusrichtlinie für dashello-world-Repository gelöscht.aws ecr delete-lifecycle-policy \ --repository-namehello-worldAusgabe:
{ "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 }-
API-Details finden Sie unter DeleteLifecyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-repository-policy verwendet wird.
- AWS CLI
-
So löschen Sie die Repository-Richtlinie für ein Repository
Im folgenden
delete-repository-policy-Beispiel wird die Repository-Richtlinie für dascluster-autoscaler-Repository gelöscht.aws ecr delete-repository-policy \ --repository-namecluster-autoscalerAusgabe:
{ "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}" }-
API-Details finden Sie unter DeleteRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie delete-repository verwendet wird.
- AWS CLI
-
So löschen Sie ein Repository
Der folgende
delete-repository-Beispielbefehl erzwingt das Löschen des angegebenen Repositorys im Standard-Registry für ein Konto. Das--force-Flag ist erforderlich, wenn das Repository Images enthält.aws ecr delete-repository \ --repository-nameubuntu\ --forceAusgabe:
{ "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.
-
API-Details finden Sie unter DeleteRepository
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie describe-image-scan-findings verwendet wird.
- AWS CLI
-
So beschreiben Sie die Scanergebnisse für ein Image
Im folgenden
describe-image-scan-findings-Beispiel werden die Ergebnisse des Image-Scans für ein Image mithilfe des Image-Digests im angegebenen Repository der Standard-Registry für ein Konto zurückgegeben.aws ecr describe-image-scan-findings \ --repository-namesample-repo\ --image-idimageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6Ausgabe:
{ "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 Scannen von Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter DescribeImageScanFindings
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie describe-images verwendet wird.
- AWS CLI
-
So beschreiben Sie ein Image in einem Repository
Im folgenden
describe-images-Beispiel werden Details zu einem Image imcluster-autoscaler-Repository mit dem Tagv1.13.6angezeigt.aws ecr describe-images \ --repository-namecluster-autoscaler\ --image-idsimageTag=v1.13.6Ausgabe:
{ "imageDetails": [ { "registryId": "012345678910", "repositoryName": "cluster-autoscaler", "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTags": [ "v1.13.6" ], "imageSizeInBytes": 48318255, "imagePushedAt": 1565128275.0 } ] }-
API-Details finden Sie unter DescribeImages
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie describe-repositories verwendet wird.
- AWS CLI
-
So beschreiben Sie die Repositorys in einem Registry
In diesem Beispiel werden die Repositorys im Standard-Registry für ein Konto beschrieben.
Befehl:
aws ecr describe-repositoriesAusgabe:
{ "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" } ] }-
API-Details finden Sie unter DescribeRepositories
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-authorization-token verwendet wird.
- AWS CLI
-
So rufen Sie ein Autorisierungstoken für Ihr Standard-Registry ab
Mit dem folgenden
get-authorization-token-Beispielbefehl wird ein Autorisierungstoken für Ihr Standard-Registry abgerufen.aws ecr get-authorization-tokenAusgabe:
{ "authorizationData": [ { "authorizationToken": "QVdTOkN...", "expiresAt": 1448875853.241, "proxyEndpoint": "https://123456789012.dkr.ecr.us-west-2.amazonaws.com" } ] }-
API-Details finden Sie unter GetAuthorizationToken
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-download-url-for-layer verwendet wird.
- AWS CLI
-
So rufen Sie die Download-URL eines Layers ab
Im folgenden
get-download-url-for-layer-Beispiel wird die Download-URL eines Layers mit dem Digestsha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edimcluster-autoscaler-Repository angezeigt.aws ecr get-download-url-for-layer \ --repository-namecluster-autoscaler\ --layer-digestsha256:6171c7451a50945f8ddd72f7732cc04d7a0d1f48138a426b2e64387fdeb834edAusgabe:
{ "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" }-
API-Details finden Sie unter GetDownloadUrlForLayer
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-lifecycle-policy-preview verwendet wird.
- AWS CLI
-
So rufen Sie Details für eine Lebenszyklus-Richtlinienvorschau ab
Im folgenden
get-lifecycle-policy-preview-Beispiel wird das Ergebnis einer Lebenszyklus-Richtlinienvorschau für das angegebene Repository im Standard-Registry 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.
-
API-Details finden Sie unter GetLifecyclePolicyPreview
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-lifecycle-policy verwendet wird.
- AWS CLI
-
So rufen Sie eine Lebenszyklusrichtlinie ab
Im folgenden
get-lifecycle-policy-Beispiel werden Details der Lebenszyklusrichtlinie für das angegebene Repository im Standard-Registry für das 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.
-
API-Details finden Sie unter GetLifecyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-login-password verwendet wird.
- AWS CLI
-
So rufen Sie ein Passwort ab, um sich bei einem Registry zu authentifizieren
Im folgenden
get-login-password-Beispiel wird ein Passwort angezeigt, das Sie mit einem Containerclient Ihrer Wahl verwenden können, um sich bei einem beliebigen Amazon-ECR-Registry zu authentifizieren, auf das Ihr IAM-Prinzipal Zugriff hat.aws ecr get-login-passwordAusgabe:
<password>Zur Verwendung mit der Docker-CLI leiten Sie die Ausgabe des
get-login-password-Befehls an dendocker login-Befehl weiter. Stellen Sie beim Abrufen des Passworts sicher, dass Sie dieselbe Region angeben, in der sich Ihr Amazon-ECR-Registry befindet.aws ecr get-login-password \ --region<region>\|dockerlogin\ --usernameAWS\ --password-stdin<aws_account_id>.dkr.ecr.<region>.amazonaws.com.rproxy.govskope.caWeitere Informationen finden Sie unter Registry-Authentifizierung im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter GetLoginPassword
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-login verwendet wird.
- AWS CLI
-
So rufen Sie einen Docker-Anmeldebefehl für Ihr Standard-Registry ab
In diesem Beispiel wird ein Befehl gedruckt, mit dem Sie sich bei Ihrem standardmäßigen Amazon-ECR-Registry anmelden können.
Befehl:
aws ecr get-loginAusgabe:
docker login -u AWS -p <password> -e none https://<aws_account_id>.dkr.ecr.<region>.amazonaws.com.rproxy.govskope.caSo melden Sie sich beim Registry eines anderen Kontos an
In diesem Beispiel werden ein oder mehrere Befehle gedruckt, mit denen Sie sich bei Amazon-ECR-Registrys anmelden können, die mit anderen Konten verknüpft sind.
Befehl:
aws ecr get-login --registry-ids012345678910023456789012Ausgabe:
docker login -u <username> -p <token-1> -e none <endpoint-1> docker login -u <username> -p <token-2> -e none <endpoint-2>-
API-Details finden Sie unter GetLogin
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie get-repository-policy verwendet wird.
- AWS CLI
-
So rufen Sie die Repository-Richtlinie für ein Repository ab
Im folgenden
get-repository-policy-Beispiel werden Details zur Repository-Richtlinie für dascluster-autoscaler-Repository angezeigt.aws ecr get-repository-policy \ --repository-namecluster-autoscalerAusgabe:
{ "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}" }-
API-Details finden Sie unter GetRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie initiate-layer-upload verwendet wird.
- AWS CLI
-
So initiieren Sie einen Upload eines Image-Layers
Im folgenden
initiate-layer-upload-Beispiel wird der Upload eines Image-Layers in daslayer-test-Repository initiiert.aws ecr initiate-layer-upload \ --repository-namelayer-testAusgabe:
{ "partSize": 10485760, "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9" }-
API-Details finden Sie unter InitiateLayerUpload
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-images verwendet wird.
- AWS CLI
-
So listen Sie die Images in einem Repository auf
Im folgenden
list-images-Beispiel wird eine Liste der Images imcluster-autoscaler-Repository angezeigt.aws ecr list-images \ --repository-namecluster-autoscalerAusgabe:
{ "imageIds": [ { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.8" }, { "imageDigest": "sha256:99c6fb4377e9a420a1eb3b410a951c9f464eff3b7dbc76c65e434e39b94b6570", "imageTag": "v1.13.7" }, { "imageDigest": "sha256:4a1c6567c38904384ebc64e35b7eeddd8451110c299e3368d2210066487d97e5", "imageTag": "v1.13.6" } ] }-
API-Details finden Sie unter ListImages
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie list-tags-for-resource verwendet wird.
- AWS CLI
-
So listen Sie die Tags für ein Repository auf
Im folgenden
list-tags-for-resource-Beispiel wird eine Liste der Tags angezeigt, die demhello-world-Repository zugeordnet sind.aws ecr list-tags-for-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-worldAusgabe:
{ "tags": [ { "Key": "Stage", "Value": "Integ" } ] }-
API-Details finden Sie unter ListTagsForResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie put-image-scanning-configuration verwendet wird.
- AWS CLI
-
So aktualisieren Sie die Image-Scan-Konfiguration für ein Repository
Das folgende
put-image-scanning-configuration-Beispiel aktualisiert die Image-Scan-Konfiguration für das angegebenes Repository.aws ecr put-image-scanning-configuration \ --repository-namesample-repo\ --image-scanning-configurationscanOnPush=trueAusgabe:
{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageScanningConfiguration": { "scanOnPush": true } }Weitere Informationen finden Sie unter Scannen von Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter PutImageScanningConfiguration
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie put-image-tag-mutability verwendet wird.
- AWS CLI
-
So aktualisieren Sie die Einstellung zur Veränderlichkeit von Image-Tags für ein Repository
Im folgenden
put-image-tag-mutability-Beispiel wird das angegebene Repository für die Unveränderlichkeit von Tags konfiguriert. Dies verhindert das Überschreiben aller Image-Tags innerhalb des Repositorys.aws ecr put-image-tag-mutability \ --repository-namehello-repository\ --image-tag-mutabilityIMMUTABLEAusgabe:
{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageTagMutability": "IMMUTABLE" }Weitere Informationen finden Sie unter Veränderlichkeit von Image-Tags im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter PutImageTagMutability
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie put-image verwendet wird.
- AWS CLI
-
So markieren Sie ein Image erneut mit seinem Manifest
Im folgenden
put-image-Beispiel wird ein neues Tag imhello-world-Repository mit einem vorhandenen Image-Manifest erstellt.aws ecr put-image \ --repository-namehello-world\ --image-tag2019.08\ --image-manifestfile://hello-world.manifest.jsonInhalt 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" } }-
API-Details finden Sie unter PutImage
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie put-lifecycle-policy verwendet wird.
- AWS CLI
-
So erstellen Sie eine Lebenszyklusrichtlinie
Im folgenden
put-lifecycle-policy-Beispiel wird eine Lebenszyklusrichtlinie für das angegebene Repository im Standard-Registry 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.
-
API-Details finden Sie unter PutLifeCyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie set-repository-policy verwendet wird.
- AWS CLI
-
So legen Sie die Repository-Richtlinie für ein Repository fest
Im folgenden
set-repository-policy-Beispiel wird eine in einer Datei enthaltene Repository-Richtlinie an dascluster-autoscaler-Repository angehängt.aws ecr set-repository-policy \ --repository-namecluster-autoscaler\ --policy-textfile://my-policy.jsonInhalt von
my-policy.json:{ "Version":"2012-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}" }-
API-Details finden Sie unter SetRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie start-image-scan verwendet wird.
- AWS CLI
-
So starten Sie einen Schwachstellenscan für ein Image
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-namesample-repo\ --image-idimageDigest=sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6Ausgabe:
{ "registryId": "012345678910", "repositoryName": "sample-repo", "imageId": { "imageDigest": "sha256:74b2c688c700ec95a93e478cdb959737c148df3fbf5ea706abe0318726e885e6" }, "imageScanStatus": { "status": "IN_PROGRESS" } }Weitere Informationen finden Sie unter Scannen von Images im Amazon-ECR-Benutzerhandbuch.
-
API-Details finden Sie unter StartImageScan
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie start-lifecycle-policy-preview verwendet wird.
- AWS CLI
-
So erstellen Sie eine Lebenszyklus-Richtlinienvorschau
Im folgenden
start-lifecycle-policy-preview-Beispiel wird eine Lebenszyklus-Richtlinienvorschau, die durch eine JSON-Datei definiert ist, für das angegebene Repository erstellt.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" }-
API-Details finden Sie unter StartLifecyclePolicyPreview
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie tag-resource verwendet wird.
- AWS CLI
-
So taggen Sie ein Repository
Im folgenden
tag-resource-Beispiel wird ein Tag mit dem SchlüsselStageund dem WertIntegimhello-world-Repository festgelegt.aws ecr tag-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-world\ --tagsKey=Stage,Value=IntegMit diesem Befehl wird keine Ausgabe zurückgegeben.
-
API-Details finden Sie unter TagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie untag-resource verwendet wird.
- AWS CLI
-
So heben Sie die Markierung eines Repositorys auf
Im folgenden
untag-resource-Beispiel wird das Tag mit dem SchlüsselStageaus demhello-world-Repository entfernt.aws ecr untag-resource \ --resource-arnarn:aws:ecr:us-west-2:012345678910:repository/hello-world\ --tag-keysStageMit diesem Befehl wird keine Ausgabe zurückgegeben.
-
API-Details finden Sie unter UntagResource
in der AWS CLI-Befehlsreferenz.
-
Das folgende Codebeispiel zeigt, wie upload-layer-part verwendet wird.
- AWS CLI
-
So laden Sie einen Layer-Teil hoch
Im folgenden
upload-layer-part-Beispiel wird ein Teil des Image-Layers in daslayer-test-Repository hochgeladen.aws ecr upload-layer-part \ --repository-namelayer-test\ --upload-id6cb64b8a-9378-0e33-2ab1-b780fab8a9e9\ --part-first-byte0\ --part-last-byte8323314\ --layer-part-blobfile:///var/lib/docker/image/overlay2/layerdb/sha256/ff986b10a018b48074e6d3a68b39aad8ccc002cdad912d4148c0f92b3729323e/layer.b64Ausgabe:
{ "uploadId": "6cb64b8a-9378-0e33-2ab1-b780fab8a9e9", "registryId": "012345678910", "lastByteReceived": 8323314, "repositoryName": "layer-test" }-
API-Details finden Sie unter UploadLayerPart
in der AWS CLI-Befehlsreferenz.
-