Weitere AWS-SDK-Beispiele sind im GitHub-Repository Beispiele für AWS Doc SDKs
Beispiele für Amazon ECR unter Verwendung von AWS CLI
Die folgenden Codebeispiele zeigen, wie Sie Aktionen durchführen und gängige Szenarien implementieren, indem Sie 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 Servicefunktionen aufrufen, können Sie Aktionen im Kontext der zugehörigen Szenarien anzeigen.
Jedes Beispiel enthält einen Link zum vollständigen Quellcode, wo Sie Anweisungen zum Einrichten und Ausführen des Codes im Kodex finden.
Themen
Aktionen
Die folgenden Codebeispiele zeigen, wie batch-check-layer-availability verwendet wird.
- AWS CLI
-
So prüfen Sie die Verfügbarkeit eines Layers
Im folgenden Beispiel für
batch-check-layer-availabilitywird 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": [] }-
Weitere API-Informationen finden Sie unter BatchCheckLayerAvailability
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie batch-delete-image verwendet wird.
- AWS CLI
-
Beispiel 1: So löschen Sie ein Image
Im folgenden Beispiel für
batch-delete-imagewird 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 Beispiel für
batch-delete-imagewerden 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter BatchDeleteImage
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie batch-get-image verwendet wird.
- AWS CLI
-
Beispiel 1: So rufen Sie ein Image ab
Im folgenden Beispiel für
batch-get-imagewird 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 Beispiel für
batch-get-imagewerden 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter BatchGetImage
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie complete-layer-upload verwendet wird.
- AWS CLI
-
So schließen Sie den Upload eines Image-Layers ab
Im folgenden Beispiel für
complete-layer-uploadwird 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" }-
Weitere API-Informationen finden Sie unter CompleteLayerUpload
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie create-repository verwendet wird.
- AWS CLI
-
Beispiel 1: So erstellen Sie ein Repository
Im folgenden Beispiel für
create-repositorywird 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 Benutzerhandbuch für Amazon ECR.
Beispiel 2: So erstellen Sie ein Repository, das mit der Unveränderlichkeit von Image-Tags konfiguriert ist
Im folgenden Beispiel für
create-repositorywird 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 Benutzerhandbuch für Amazon ECR.
Beispiel 3: So erstellen Sie ein Repository, das mit einer Scan-Konfiguration konfiguriert ist
Im folgenden Beispiel für
create-repositorywird 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter CreateRepository
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie delete-lifecycle-policy verwendet wird.
- AWS CLI
-
So löschen Sie eine Lebenszyklusrichtlinie für ein Repository
Im folgenden Beispiel für
delete-lifecycle-policywird 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 }-
Weitere API-Informationen finden Sie unter DeleteLifecyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie delete-repository-policy verwendet wird.
- AWS CLI
-
So löschen Sie die Repository-Richtlinie für ein Repository
Im folgenden Beispiel für
delete-repository-policywird 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}" }-
Weitere API-Informationen finden Sie unter DeleteRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter DeleteRepository
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie describe-image-scan-findings verwendet wird.
- AWS CLI
-
So beschreiben Sie die Scanergebnisse für ein Image
Im folgenden Beispiel für
describe-image-scan-findingswerden 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter DescribeImageScanFindings
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie describe-images verwendet wird.
- AWS CLI
-
So beschreiben Sie ein Image in einem Repository
Im folgenden Beispiel für
describe-imageswerden 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 } ] }-
Weitere API-Informationen finden Sie unter DescribeImages
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, 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" } ] }-
Weitere API-Informationen finden Sie unter DescribeRepositories
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, 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" } ] }-
Weitere API-Informationen finden Sie unter GetAuthorizationToken
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie get-download-url-for-layer verwendet wird.
- AWS CLI
-
So rufen Sie die Download-URL eines Layers ab
Im folgenden Beispiel für
get-download-url-for-layerwird 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" }-
Weitere API-Informationen finden Sie unter GetDownloadUrlForLayer
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie get-lifecycle-policy-preview verwendet wird.
- AWS CLI
-
So rufen Sie Details für eine Lebenszyklus-Richtlinienvorschau ab
Im folgenden Beispiel für
get-lifecycle-policy-previewwird 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter GetLifecyclePolicyPreview
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie get-lifecycle-policy verwendet wird.
- AWS CLI
-
So rufen Sie eine Lebenszyklusrichtlinie ab
Im folgenden Beispiel für
get-lifecycle-policywerden 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter GetLifecyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie get-login-password verwendet wird.
- AWS CLI
-
So rufen Sie ein Passwort ab, um sich bei einem Registry zu authentifizieren
Im folgenden Beispiel für
get-login-passwordwird 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.comWeitere Informationen finden Sie unter Registry-Authentifizierung im Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter GetLoginPassword
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, 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.comSo 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>-
Weitere API-Informationen finden Sie unter GetLogin
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie get-repository-policy verwendet wird.
- AWS CLI
-
So rufen Sie die Repository-Richtlinie für ein Repository ab
Im folgenden Beispiel für
get-repository-policywerden 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}" }-
Weitere API-Informationen finden Sie unter GetRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie initiate-layer-upload verwendet wird.
- AWS CLI
-
So initiieren Sie einen Upload eines Image-Layers
Im folgenden Beispiel für
initiate-layer-uploadwird 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" }-
Weitere API-Informationen finden Sie unter InitiateLayerUpload
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie list-images verwendet wird.
- AWS CLI
-
So listen Sie die Images in einem Repository auf
Im folgenden Beispiel für
list-imageswird 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" } ] }-
Weitere API-Informationen finden Sie unter ListImages
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie list-tags-for-resource verwendet wird.
- AWS CLI
-
So listen Sie die Tags für ein Repository auf
Im folgenden Beispiel für
list-tags-for-resourcewird 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" } ] }-
Weitere API-Informationen finden Sie unter ListTagsForResource
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie put-image-scanning-configuration verwendet wird.
- AWS CLI
-
So aktualisieren Sie die Image-Scan-Konfiguration für ein Repository
Im folgenden Beispiel für
put-image-scanning-configurationwird die Image-Scan-Konfiguration für das angegebenes Repository aktualisiert.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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter PutImageScanningConfiguration
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, 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 Beispiel für
put-image-tag-mutabilitywird 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter PutImageTagMutability
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie put-image verwendet wird.
- AWS CLI
-
So markieren Sie ein Image erneut mit seinem Manifest
Im folgenden Beispiel für
put-imagewird 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" } }-
Weitere API-Informationen finden Sie unter PutImage
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie put-lifecycle-policy verwendet wird.
- AWS CLI
-
So erstellen Sie eine Lebenszyklusrichtlinie
Im folgenden Beispiel für
put-lifecycle-policywird 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter PutLifeCyclePolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie set-repository-policy verwendet wird.
- AWS CLI
-
So legen Sie die Repository-Richtlinie für ein Repository fest
Im folgenden Beispiel für
set-repository-policywird 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" : "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}" }-
Weitere API-Informationen finden Sie unter SetRepositoryPolicy
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie start-image-scan verwendet wird.
- AWS CLI
-
So starten Sie einen Schwachstellenscan für ein Image
Im folgenden Beispiel für
start-image-scanwird 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 Benutzerhandbuch für Amazon ECR.
-
Weitere API-Informationen finden Sie unter StartImageScan
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie start-lifecycle-policy-preview verwendet wird.
- AWS CLI
-
So erstellen Sie eine Lebenszyklus-Richtlinienvorschau
Im folgenden Beispiel für
start-lifecycle-policy-previewwird 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" }-
Weitere API-Informationen finden Sie unter StartLifecyclePolicyPreview
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie tag-resource verwendet wird.
- AWS CLI
-
So taggen Sie ein Repository
Im folgenden Beispiel für
tag-resourcewird 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.
-
Weitere API-Informationen finden Sie unter TagResource
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie untag-resource verwendet wird.
- AWS CLI
-
So heben Sie die Markierung eines Repositorys auf
Im folgenden Beispiel für
untag-resourcewird 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.
-
Weitere API-Informationen finden Sie unter UntagResource
in der AWS CLI-Befehlsreferenz.
-
Die folgenden Codebeispiele zeigen, wie upload-layer-part verwendet wird.
- AWS CLI
-
So laden Sie einen Layer-Teil hoch
Im folgenden Beispiel für
upload-layer-partwird 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" }-
Weitere API-Informationen finden Sie unter UploadLayerPart
in der AWS CLI-Befehlsreferenz.
-