이 문서는 AWS CLI의 버전 1에만 해당합니다. AWS CLI의 버전 2와 관련된 문서는 버전 2 사용 설명서를 참조하세요.
AWS CLI를 사용한 Amazon ECR Public 예제
다음 코드 예제에서는 Amazon ECR Public에서 AWS Command Line Interface를 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여 줍니다.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 관련 시나리오의 컨텍스트에 따라 표시되며, 개별 서비스 함수를 직접적으로 호출하는 방법을 보여줍니다.
각 예시에는 전체 소스 코드에 대한 링크가 포함되어 있으며, 여기에서 컨텍스트에 맞춰 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있습니다.
주제
작업
다음 코드 예시에서는 batch-delete-image
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 이미지 다이제스트 ID를 사용하여 이미지를 삭제하려면 이미지와 모든 태그가 퍼블릭 레지스트리의 리포지토리 내에서 삭제됩니다.
다음
batch-delete-image
예제에서는 이미지 다이제스트를 지정하여 이미지를 삭제합니다.aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2
출력:
{ "imageIds": [ { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTag": "latest" } ], "failures": [] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에서 이미지 삭제를 참조하세요.
예제 2: 리포지토리에서 삭제하려는 이미지와 연결된 태그를 지정하여 이미지 삭제.
다음
batch-delete-image
예제에서는 퍼블릭 레지스트리에project-a/nginx-web-app
이름이 지정된 이미지 리포지토리와 연결된 태그를 지정하여 이미지를 삭제합니다. 태그가 하나뿐이고 이 명령을 실행하면 이미지가 제거됩니다. 그렇지 않으면 동일한 이미지에 대해 여러 태그가 있는 경우 하나를 지정하면 태그만 리포지토리에서 제거되고 이미지는 제거되지 않습니다.aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageTag=_temp
출력:
{ "imageIds": [ { "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTag": "_temp" } ], "failures": [] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에서 이미지 삭제를 참조하세요.
예제 3: 여러 이미지를 삭제하려면 퍼블릭 레지스트리의 리포지토리에 대한 요청에서 여러 이미지 태그 또는 이미지 다이제스트를 지정할 수 있습니다.
다음
batch-delete-image
예제에서는 요청에 여러 이미지 태그 또는 이미지 다이제스트를 지정하여 project-a/nginx-web-app이라는 리포지토리에서 여러 이미지를 삭제합니다.aws ecr-public batch-delete-image \ --repository-name
project-a/nginx-web-app
\ --image-idsimageTag=temp2.0
imageDigest=sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278
출력:
{ "imageIds": [ { "imageDigest": "sha256:47ba980bc055353d9c0af89b1894f68faa43ca93856917b8406316be86f01278" }, { "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTag": "temp2.0" } ], "failures": [] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에서 이미지 삭제를 참조하세요.
예제 4: 레지스트리 ID 및 이미지 다이제스트 ID를 사용하여 교차 AWS 계정의 이미지를 삭제하려면 이미지와 모든 태그가 퍼블릭 레지스트리의 리포지토리 내에서 삭제됩니다.
다음
batch-delete-image
예제에서는 교차 AWS 계정에서 이미지 다이제스트를 지정하여 이미지를 삭제합니다.aws ecr-public batch-delete-image \ --registry-id
123456789098
\ --repository-nameproject-a/nginx-web-app
\ --image-idsimageDigest=sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2
\ --regionus-east-1
출력:
{ "imageIds": [ { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTag": "temp2.0" } ], "failures": [] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에서 이미지 삭제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 BatchDeleteImage
를 참조하세요.
-
다음 코드 예시에서는 create-repository
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 레지스트리에서 리포지토리를 생성하는 방법
다음
create-repository
예제에서는 퍼블릭 레지스트리에 project-a/nginx-web-app이라는 리포지토리를 생성합니다.aws ecr-public create-repository \ --repository-name
project-a/nginx-web-app
출력:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:08:55.131000+00:00" }, "catalogData": {} }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 생성을 참조하세요.
예제 2: 리포지토리의 이미지가 호환되는 리포지토리의 내용, 시스템 및 운영 아키텍처에 대한 간단한 설명과 함께 퍼블릭 레지스트리에 리포지토리를 만드는 방법
다음
create-repository
예제에서는 리포지토리의 내용, 리포지토리의 이미지가 호환되는 시스템 및 운영 아키텍처에 대한 간략한 설명과 함께 퍼블릭 레지스트리에 project-a/nginx-web-app이라는 리포지토리를 생성합니다.aws ecr-public create-repository \ --repository-name
project-a/nginx-web-app
\ --catalog-data 'description=My project-a ECR Public Repository,architectures=ARM,ARM 64,x86,x86-64,operatingSystems=Linux
'출력:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:23:20.455000+00:00" }, "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ] } }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 생성을 참조하세요.
예제 3: 퍼블릭 레지스트리에 리포지토리를 만드는 방법과 logoImageBlob, aboutText, usageText 및 태그 정보
다음
create-repository
예제에서는 logoImageBlob, aboutText, usageText 및 태그 정보와 함께 퍼블릭 레지스트리에 project-a/nginx-web-app이라는 이름의 리포지토리를 생성합니다.aws ecr-public create-repository \ --cli-input-json
file://myfile.json
myfile.json
의 콘텐츠:{ "repositoryName": "project-a/nginx-web-app", "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoImageBlob": "iVBORw0KGgoA<<truncated-for-better-reading>>ErkJggg==", "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install <package>` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." }, "tags": [ { "Key": "Name", "Value": "project-a/nginx-web-app" }, { "Key": "Environment", "Value": "Prod" } ] }
출력:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T21:53:05.749000+00:00" }, "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/23861450-4b9b-403c-9a4c-7aa0ef140bb8/2f9bf5a7-a32f-45b4-b5cd-c5770a35e6d7.png", "aboutText": "## Quick reference\n\nMaintained by: [the Amazon Linux Team](https://github.com/aws/amazon-linux-docker-images)\n\nWhere to get help: [the Docker Community Forums](https://forums.docker.com/), [the Docker Community Slack](https://dockr.ly/slack), or [Stack Overflow](https://stackoverflow.com/search?tab=newest&q=docker)\n\n## Supported tags and respective `dockerfile` links\n\n* [`2.0.20200722.0`, `2`, `latest`](https://github.com/amazonlinux/container-images/blob/03d54f8c4d522bf712cffd6c8f9aafba0a875e78/Dockerfile)\n* [`2.0.20200722.0-with-sources`, `2-with-sources`, `with-sources`](https://github.com/amazonlinux/container-images/blob/1e7349845e029a2e6afe6dc473ef17d052e3546f/Dockerfile)\n* [`2018.03.0.20200602.1`, `2018.03`, `1`](https://github.com/amazonlinux/container-images/blob/f10932e08c75457eeb372bf1cc47ea2a4b8e98c8/Dockerfile)\n* [`2018.03.0.20200602.1-with-sources`, `2018.03-with-sources`, `1-with-sources`](https://github.com/amazonlinux/container-images/blob/8c9ee491689d901aa72719be0ec12087a5fa8faf/Dockerfile)\n\n## What is Amazon Linux?\n\nAmazon Linux is provided by Amazon Web Services (AWS). It is designed to provide a stable, secure, and high-performance execution environment for applications running on Amazon EC2. The full distribution includes packages that enable easy integration with AWS, including launch configuration tools and many popular AWS libraries and tools. AWS provides ongoing security and maintenance updates to all instances running Amazon Linux.\n\nThe Amazon Linux container image contains a minimal set of packages. To install additional packages, [use `yum`](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-software.html).\n\nAWS provides two versions of Amazon Linux: [Amazon Linux 2](https://aws.amazon.com/amazon-linux-2/) and [Amazon Linux AMI](https://aws.amazon.com/amazon-linux-ami/).\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and Amazon ECS clusters.\n\n## License\n\nAmazon Linux is available under the [GNU General Public License, version 2.0](https://github.com/aws/amazon-linux-docker-images/blob/master/LICENSE). Individual software packages are available under their own licenses; run `rpm -qi [package name]` or check `/usr/share/doc/[package name]-*` and `/usr/share/licenses/[package name]-*` for details.\n\nAs with all Docker images, these likely also contain other software which may be under other licenses (such as Bash, etc from the base distribution, along with any direct or indirect dependencies of the primary software being contained).\n\nSome additional license information which was able to be auto-detected might be found in [the `repo-info` repository's `amazonlinux/` directory](https://github.com/docker-library/repo-info/tree/master/repos/amazonlinux).\n\n## Security\n\nFor information on security updates for Amazon Linux, please refer to [Amazon Linux 2 Security Advisories](https://alas.aws.amazon.com/alas2.html) and [Amazon Linux AMI Security Advisories](https://alas.aws.amazon.com/). Note that Docker Hub's vulnerability scanning for Amazon Linux is currently based on RPM versions, which does not reflect the state of backported patches for vulnerabilities.", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## Where can I run Amazon Linux container images?\n\nYou can run Amazon Linux container images in any Docker based environment. Examples include, your laptop, in Amazon EC2 instances, and ECS clusters.\n\n## How do I install a software package from Extras repository in Amazon Linux 2?\n\nAvailable packages can be listed with the `amazon-linux-extras` command. Packages can be installed with the `amazon-linux-extras install <package>` command. Example: `amazon-linux-extras install rust1`\n\n## Will updates be available for Amazon Linux containers?\n\nSimilar to the Amazon Linux images for Amazon EC2 and on-premises use, Amazon Linux container images will get ongoing updates from Amazon in the form of security updates, bug fix updates, and other enhancements. Security bulletins for Amazon Linux are available at https://alas.aws.amazon.com/\n\n## Will AWS Support the current version of Amazon Linux going forward?\n\nYes; in order to avoid any disruption to your existing applications and to facilitate migration to Amazon Linux 2, AWS will provide regular security updates for Amazon Linux 2018.03 AMI and container image for 2 years after the final LTS build is announced. You can also use all your existing support channels such as AWS Support and Amazon Linux Discussion Forum to continue to submit support requests." } }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 생성과 Amazon ECR Public 사용 설명서의 리포지토리 카탈로그 데이터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 CreateRepository
를 참조하세요.
-
다음 코드 예시에서는 delete-repository-policy
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리에서 리포지토리 정책을 삭제하려면
다음
delete-repository-policy
예제에서는 AWS 계정의 ECR Public 리포지토리에 대한 리포지토리 정책을 삭제합니다.aws ecr-public delete-repository-policy \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam:"123456789012":user/eksuser1\", \"arn:aws:iam:"123456789012":user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 정책 명령문 삭제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteRepositoryPolicy
를 참조하세요.
-
다음 코드 예시에서는 delete-repository
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리에서 리포지토리를 삭제하는 방법
다음
delete-repository
예제에서는 퍼블릭 레지스트리에서 이름이project-a/nginx-web-app
인 리포지토리를 삭제합니다.aws ecr-public delete-repository \ --repository-name
project-a/nginx-web-app
출력:
{ "repository": { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-01T22:14:50.103000+00:00" } }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 삭제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 DeleteRepository
를 참조하세요.
-
다음 코드 예시에서는 describe-image-tags
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 리포지토리의 이미지 태그 세부 정보 설명
다음
describe-image-tags
예제에서는project-a/nginx-web-app
샘플 리포지토리의 이미지 태그를 설명합니다.aws ecr-public describe-image-tags \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "imageTagDetails": [ { "imageTag": "latest", "createdAt": "2024-07-10T22:29:00-05:00", "imageDetail": { "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageSizeInBytes": 121956548, "imagePushedAt": "2024-07-10T22:29:00-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" } } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeImageTags
를 참조하세요.
-
다음 코드 예시에서는 describe-images
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 레지스트리 리포지토리의 이미지 설명
다음
describe-images
예제에서는 퍼블릭 레지스트리에서project-a/nginx-web-app
이라는 리포지토리의 imagesDetails를 설명합니다.aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "imageDetails": [ { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:0d8c93e72e82fa070d49565c00af32abbe8ddfd7f75e39f4306771ae0628c7e8", "imageTags": [ "temp1.0" ], "imageSizeInBytes": 123184716, "imagePushedAt": "2024-07-23T11:32:49-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" }, { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:b1f9deb5fe3711a3278379ebbcaefbc5d70a2263135db86bd27a0dae150546c2", "imageTags": [ "temp2.0" ], "imageSizeInBytes": 121956548, "imagePushedAt": "2024-07-23T11:39:38-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" }, { "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "imageDigest": "sha256:f7a86a0760e2f8d7eff07e515fc87bf4bac45c35376c06f9a280f15ecad6d7e0", "imageTags": [ "temp3.0", "latest" ], "imageSizeInBytes": 232108879, "imagePushedAt": "2024-07-22T00:54:34-05:00", "imageManifestMediaType": "application/vnd.docker.distribution.manifest.v2+json", "artifactMediaType": "application/vnd.docker.container.image.v1+json" } ] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리의 이미지 설명을 참조하세요.
예제 2: imageTags & imagePushedAt를 정렬하여 리포지토리의 이미지 설명
다음
describe-images
예제에서는 퍼블릭 레지스트리의 project-a/nginx-web-app이라는 리포지토리 내의 이미지를 설명합니다.aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*]
' \ --outputtext
출력:
temp3.0 latest temp1.0 temp2.0
예제 3: 리포지토리에서 푸시된 마지막 이미지 태그 2개를 생성하기 위해 리포지토리의 이미지를 설명
다음
describe-images
예제에서는 퍼블릭 레지스트리의project-a/nginx-web-app
이라는 리포지토리에서 이미지 태그 세부 정보를 가져오고 결과를 쿼리하여 처음 두 레코드만 표시합니다.aws ecr-public describe-images \ --repository-name
project-a/nginx-web-app
\ --query 'sort_by(imageDetails,& imagePushedAt)[*].imageTags[*] | [0:2]
' \ --outputtext
출력:
temp3.0 latest temp1.0
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeImages
를 참조하세요.
-
다음 코드 예시에서는 describe-registries
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리의 모든 레지스트리를 설명하려면
다음
describe-registries
예제에서는 계정의 모든 레지스트리를 설명합니다.aws ecr-public describe-registries
출력:
{ "registries": [ { "registryId": "123456789012", "registryArn": "arn:aws:ecr-public::123456789012:registry/123456789012", "registryUri": "public.ecr.aws/publicregistrycustomalias", "verified": false, "aliases": [ { "name": "publicregistrycustomalias", "status": "ACTIVE", "primaryRegistryAlias": true, "defaultRegistryAlias": true } ] } ] }
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeRegistries
를 참조하세요.
-
다음 코드 예시에서는 describe-repository
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 레지스트리의 리포지토리 설명
다음
describe-repositories
예제에서는 퍼블릭 레지스트리의project-a/nginx-web-app
이라는 리포지토리를 설명합니다.aws ecr-public describe-repositories \ --repository-name
project-a/nginx-web-app
출력:
{ "repositories": [ { "repositoryArn": "arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app", "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "repositoryUri": "public.ecr.aws/public-registry-custom-alias/project-a/nginx-web-app", "createdAt": "2024-07-07T00:07:56.526000-05:00" } ] }
예제 2: 테이블의 퍼블릭 레지스트리에 있는 모든 리포지토리 설명
다음
describe-repositories
예제에서는 퍼블릭 레지스트리의 모든 리포지토리를 설명한 다음 리포지토리 이름을 테이블 형식으로 출력합니다.aws ecr-public describe-repositories \ --region
us-east-1
\ --outputtable
\ --query"repositories[*].repositoryName"
출력:
----------------------------- | DescribeRepositories | +---------------------------+ | project-a/nginx-web-app | | nginx | | myfirstrepo1 | | helm-test-chart | | test-ecr-public | | nginx-web-app | | sample-repo | +---------------------------+
-
API 세부 정보는 AWS CLI 명령 참조의 DescribeRepository
섹션을 참조하세요.
-
다음 코드 예시에서는 get-authorization-token
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: IAM 보안 주체가 액세스할 수 있는 Amazon ECR 퍼블릭 레지스트리에 대한 권한 부여 토큰 검색
다음
get-authorization-token
예제에서는 AWS CLI를 사용하여 권한 부여 토큰을 가져와 환경 변수로 설정합니다.aws ecr-public get-authorization-token \ --region
us-east-1
출력:
{ "authorizationData": { "authorizationToken": "QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ==", "expiresAt": "2024-07-25T21:37:26.301000-04:00" } }
자세한 내용은 Amazon ECR Public 사용 설명서의 Amazon ECR 퍼블릭 레지스트리를 참조하세요.
예제 2: IAM 위탁자가 액세스할 수 있는 Amazon ECR 퍼블릭 레지스트리에 대한 권한 부여 토큰 검색
다음
get-authorization-token
예제에서는 AWS CLI를 사용하여 권한 부여 토큰을 가져와 환경 변수로 설정합니다.aws ecr-public get-authorization-token \ --region
us-east-1
\ --output=text \ --query 'authorizationData.authorizationToken
'출력:
QVdTOmV5SndZWGxzYjJKJFHDSFKJHERWUY65IOU36TRYEGFNSDLRIUOTUYTHJKLDFGOcmFUQk9OSFV2UVV4a0x6Sm1ZV0Z6TDFndlZtUjJSVmgxVEVObU9IZEdTWEZxU210c1JUQm5RWGxOUVV4NlNFUnROWG92ZWtGbWJFUjRkbWMyV0U5amFpczRNWGxTVkM5Tk5qWkVUM2RDYm05TVJqSkxjV3BsUVZvMmFYSm5iV1ZvVFdGSVRqVlFMMHN4VnpsTGVXbDFRWGRoTmpsbWFuQllhbVl6TkdGaGMwUjJha2xsYUhscWRscHZTRUpFVkVnNVQwNUdOVFpPY2xZclVFNVFVWGRSVFZvd04xUkhjVGxZZFVkQ1ZFZHBPRUptUzBVclYxQldMMjVMVkRsd2VFVlNSa1EzTWpWSlIxRkVWakJGZFZOVWEzaFBSVk5FWWpSc1lWZHZWMHBSYmxaMlJYWmhZekpaWVVOeFppdFlUa2xKU1RCdFUwdElVbXRJYlhGRk1WaFhNVTVRTkdwc1FYRlVNVWxZZUhkV05Xa3ZXWGd3ZUVZMWIyeE5VRU5QZEdSaWRHOU9lakZOZVdwTVZEUkNRVzlvYzNKSlpsRXhhR2cwWjJwRVJFVjNWalEzYjNCUmRIcEZUR1pYU1Rsc1kxSlNNbU5hUW5wRE1tOUpRMHR5Y1hkeGNXNDVMMmx4Um5GUlVGQnhjMVpQZG5WYUswOW9SQ3RPY0hwSlRsUk5lVXQyY0c1b1FsQjVZVEprVmtSdmJsQklOM05RU3pkNmQydERhMkZ5VmxSRmFVUndWVlE1ZGtsVWFXUkJWMFZEWVhoSFdXTk5VMXBTYTFreVRHZEVlVVZ0ZFRWRk4xTTVjRXBDUjBRMlYyTkdPVWhGWkVweVVGcEVaRFJxZUVablkwNXFaamh5YkVKWmJGSTNOVzFXSzFjdllXSTVTMWx2YUZacksxSnJWSFJ0Wml0T1NFSnpWVFZvV204eVFYbzFWRU5SYjNaR01Va3hPR3h2TWxkNVJsSmpUbTVSTjNjemJsUkdVRlZKVDBjeE9VeHlXVEpGVFRSS2NWbFdkVEJrV0VreFVsSktXbkpCVGtsMFdVZEJOMjltWjFFNGVHRktNbGRuWlVoUlNXNXdZV3A0VjI5M2FYZGljbE5tZGpkQ1ZYTmhOVFUyTDBzeVpteDBka0pUTVdkNGJ6TkxkSEJDYml0cE0waGhTbVpEZEZkQ00yOU1TM1pXTDNSVFlWaFpWelZXVWxjNFRXNXdhR3BhUmpoU1FuWnFkRlJMVW5abGRYRlNjVVJKZDBaSFpXUTRabEZUTUdOTVQwcFFkVXAyYjA5Tk9UaFlZMjEwVnpFMlpXdE9hMnBWV0hST1owUkpVV3R1VFU1dGJXWjNNVGc0VTAxUlNHZE9TbXRMY2tWYWJVeFljVVk0ZWpsTFdWWlRNbEZMVDJkMk1FaFBTMDl5YzJSM1NqTlplRGhUWVVOQlJGWnRlbkU1WTBKVFdqTktSR05WTkd0RGNEVjZNalJHVXpkVk9HTnVSa2xLUVd4SVJDODJXbGcyYldGemJVczJPRVp6TDBoNFMwWkRUMmdyYldGa1QwWjVhMlZQTm5SQ1l6QkpNbFpyVUhSaGVIbFVOR296VjFGVlQyMHpNeTlPWVVoSk1FdDBWalZFU2pneU5rcHNLemQxZDNwcVp6RlNja3AwVm10VU0yRnRWWGMzZDJnMFduSnFjVXczWTBjclNXeHFUVlUyVkZwWGNWY3ZSV0V6WW1oT2JIRklZVlJHU1RrMGEyOVJiMHBPVUhORk9FdERjbFJZY0daS2VVdHRZa2x5YjFORE4zSkJaWEJPZUU5eGR6WnhZMlY1WXprM1JtSkZhVFZFYkVFck5EUk9ZMWRyVEVNd1dqa2lMQ0prWVhSaGEyVjVJam9pWlhsS1VWSkdaMmxQYVVwV1ZXeENhVk5YVm14WFdFWk5VMjFrV21SRE9YaGFhWFF4VkhwS1MyTkljSHBVUms0MFlWaHNTbUpIYUhsWFZHdDZZVWhqZDFKRmFETldNbFYyWTJ0cmVVMUlTbHBWUjJONFRURlJNMDlHYUd4U01uaHVWRVJzUWxaV1pGZFJibkJLV1RCYU5HTXpUakpXTUhoWFRrWndhRTVyTVVwVFZFSkdWV3RzTUZaVVpEQlRSVGxyVkVkb2FGUlVVWHBaTVhCSFQxWmFOVlJxU20xaVZXUnVTM3BaTlZaV2NIcFdWMlJGVkcwMVRHSXdSakpXUnpoNlVsUm5kbUpzUmpGT2FUazFWVzFTY0dWR1FtOVdiVEZoVmpKc1NWRllhRmRTUkZwc1V6SkdSbUpWYkhCVlNFbDJWVzB4Ym1OVk1IWmFhelZ3WkZoa1FtVnFUa3BpTTJoTVRWVk9jMVo2V2t4aWJFWnJWRVUxVW1ONlp6QldWVFZPWW14c01sZFlZekprUjFwVFkxaE9kRnBXWkhaVFZWcGhWa2MxU2xWRlVtdFRiWE16WWpOVmVrNXFSa2RVTTJSd1QwaGtXbVJIVVhsbGJYQkRaRlp2ZGxvd1ZqWmlNbEl4Vkc1T2FtSldjRU5VU0ZVd1kwZDRjbU14WkhaVVYwNTRaRzV2TWxSVlVsQmpiSEJPVkc1VmVsZEZPVzVYYkVwWlUyNWtVbGRZWkZWaVdFWlNUVzF3VFZSSVFraE9XRnBwWVZoak0xUnJXak5OYm04eFpEQk9XbEZzYkhSTmEyaHpaRmRTUTJORVFUQlpWMk01VUZOSmMwbHJiRUpTUTBrMlNXNUZlbHA2U1RGVVZXeFVZekIwYVU5RWFEVmtiRVpzVVZWc2QxbHJWbmxOYW13MVZWaG9UazVzVWpWbFJHaDZZMjFHVkZVeFFubFZXRTVLVGpCMGFXSlZNWGhpUjBwTVlUSTVNRTVVYXpCTE0wVnlWakF4VG1WSE5VcGtSa0pRVld4V1UwOVdVWGhqTVc4eVZraFdlVnA2VGsxV01tUnhVV3Q0ZEdGcVRsUk5hMnN5V2tSV2FtUkdVakZqVm5CUFVrUlNjR0pHUm1GbGFscDRXV2x6Y2xFd1VYcGhSRnBZVmtaU2FVNXVSVFZYYlVaVFpXdHdkVmRZVGpaVGEyaDBWMnhDVlU0elZrWlRSRUpIVlVWa2MwNVlhRFZsUkVwelQwWkNSbE5WY0ZGWFNFWXhaVmMxVEZsVE9VeFdhMGt4V1ROS1Rrd3pXazFpYkhCdFVrUldWRlJHVlhaTmJVazBZbFZzUkV3d2N6UldSV2MxVDBWa05tSXpiM2hXVms1V1ZtMDFiRkZUT1hoUFJVcHpUMGRzU2xaSVJrTkxNVTVFWWtaa05WWnViRmRYVjJRd1RXcG5kMVJWUmpCa1JYQkdZVlYwZFZNeU1VVlpWVTVQV25wa1ExZHFVbE5sUjBaRVlWVTFXbVZwY3pSTE1HTTFVbFZGTlZwRll6UlRSMVoxVFcxb05XTnJkRUpWZWxsM1RETmplbUV4WkdGU1JsWm9ZVVpzZEdWR2JFTlVNblJYVkRCNE5HUXlkRXhaTWxKTlYxZDBWRTB5YUZwaFJsazFVMGR3Y0ZGVk9YaGxhekV6VVZRd09VbHVNRDBpTENKMlpYSnphVzl1SWpvaU15SXNJblI1Y0dVaU9pSkVRVlJCWDB0RldTSXNJbVY0Y0dseVlYUnBiMjRpT2pFM01qRTVOVGMzTmpKOQ
자세한 내용은 Amazon ECR Public 사용 설명서의 Amazon ECR 퍼블릭 레지스트리를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetAuthorizationToken
을 참조하세요.
-
다음 코드 예시에서는 get-login-password
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: Amazon ECR 퍼블릭 레지스트리에 대한 Docker 인증
다음
get-login-password
예제에서는 Amazon ECR 퍼블릭 레지스트리에 인증하는 데 사용할 수 있는 GetAuthorizationToken API를 사용하여 인증 토큰을 검색하고 표시합니다.aws ecr-public get-login-password \ --region
us-east-1
|
docker
login
\ --usernameAWS
\ --password-stdinpublic.ecr.aws
이 명령은 터미널에 출력을 생성하지 않고 대신 출력을 Docker에 파이프합니다.
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 레지스트리에 인증 섹션을 참조하세요.
예제 2: 사용자 지정 AmazonECR 퍼블릭 레지스트리에 대한 Docker 인증
다음
get-login-password
예제에서는 사용자 지정 Amazon ECR 퍼블릭 레지스트리에 인증하는 데 사용할 수 있는 GetAuthorizationToken API를 사용하여 인증 토큰을 검색하고 표시합니다.aws ecr-public get-login-password \ --region us-east-1 \ | docker login \ --username AWS \ --password-stdin public.ecr.aws/<your-public-registry-custom-alias>
이 명령은 터미널에 출력을 생성하지 않고 대신 출력을 Docker에 파이프합니다.
자세한 내용은 Amazon ECR Public 사용 설명서의 자체 Amazon ECR 퍼블릭에 인증을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetLoginPassword
를 참조하세요.
-
다음 코드 예시에서는 get-registry-catalog-data
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 ECR 레지스트리의 카탈로그 메타데이터를 검색하려면
다음
get-registry-catalog-data
예제에서는 ECR 퍼블릭 레지스트리의 카탈로그 메타데이터를 검색합니다.aws ecr-public get-registry-catalog-data \ --region
us-east-1
출력:
{ "registryCatalogData": { "displayName": "YourCustomPublicRepositoryalias" } }
-
API 세부 정보는 AWS CLI 명령 참조의 GetRegistryCatalogData
섹션을 참조하세요.
-
다음 코드 예시에서는 get-repository-catalog-data
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리의 리포지토리에 대한 카탈로그 메타데이터를 검색하려면
다음
get-repository-catalog-data
예제에서는 퍼블릭 레지스트리의project-a/nginx-web-app
리포지토리에 대한 카탈로그 메타데이터를 나열합니다.aws ecr-public get-repository-catalog-data \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/491d3846-8f33-4d8b-a10c-c2ce271e6c0d/4f09d87c-2569-4916-a932-5c296bf6f88a.png", "aboutText": "## Quick reference\n\nMaintained <truncated>", "usageText": "## Supported architectures\n\namd64, arm64v8\n\n## <truncated>" } }
자세한 내용은 Amazon ECR Public 사용 설명서의 리포지토리 카탈로그 데이터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetRepositoryCatalogData
섹션을 참조하세요.
-
다음 코드 예시에서는 get-repository-policy
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
리포지토리와 연결된 리포지토리 정책을 가져오려면
다음
get-repository-policy
예제에서는 리포지토리와 연결된 리포지토리 정책을 가져옵니다.aws ecr-public get-repository-policy \ --repository-name
project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "registryId": "123456789012", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::123456789012:user/eksuser1\", \"arn:aws:iam::123456789012:user/admin\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
자세한 내용은 Amazon ECR Public 사용 설명서의 AWS SDK 또는 CLI에서 GetRepositoryPolicy 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 GetRepositoryPolicy
를 참조하세요.
-
다음 코드 예시에서는 list-tags-for-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리에서 퍼블릭 리포지토리의 태그를 나열하려면
다음
list-tags-for-resource
예제에서는 퍼블릭 레지스트리에project-a/nginx-web-app
이라는 리소스의 태그를 나열합니다.aws ecr-public list-tags-for-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --regionus-east-1
출력:
{ "tags": [ { "Key": "Environment", "Value": "Prod" }, { "Key": "stack", "Value": "dev1" }, { "Key": "Name", "Value": "project-a/nginx-web-app" } ] }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리의 태그 나열을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 ListTagsForResource
를 참조하세요.
-
다음 코드 예시에서는 put-registry-catalog-data
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 ECR 레지스트리에 대한 카탈로그 메타데이터를 생성하거나 업데이트하려면
다음
put-registry-catalog-data
에서는 ECR 퍼블릭 레지스트리에 대한 카탈로그 메타데이터를 생성하거나 업데이트합니다. 확인된 계정 배지가 있는 계정만 레지스트리 표시 이름을 가질 수 있습니다.aws ecr-public put-registry-catalog-data \ --region
us-east-1
\ --display-name<YourCustomPublicRepositoryalias>
출력:
{ "registryCatalogData": { "displayName": "YourCustomPublicRepositoryalias" } }
-
API 세부 정보는 AWS CLI 명령 참조의 PutRegistryCatalogData
를 참조하세요.
-
다음 코드 예시에서는 put-repository-catalog-data
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
퍼블릭 레지스트리의 리포지토리에 대한 카탈로그 데이터를 생성하거나 업데이트하려면
다음
put-repository-catalog-data
예제에서는 logoImageBlob, aboutText, usageText 및 태그 정보와 함께 퍼블릭 레지스트리에 project-a/nginx-web-app이라는 이름의 리포지토리의 카탈로그 데이터를 생성하거나 업데이트합니다.aws ecr-public put-repository-catalog-data \ --repository-name
project-a/nginx-web-app
\ --cli-input-jsonfile://repository-catalog-data.json
\ --regionus-east-1
repository-catalog-data.json
의 콘텐츠:{ "repositoryName": "project-a/nginx-web-app", "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoImageBlob": "iVBORw0KGgoA<<truncated-for-better-reading>>ErkJggg==", "aboutText": "## Quick reference.", "usageText": "## Supported architectures are as follows." } }
출력:
{ "catalogData": { "description": "My project-a ECR Public Repository", "architectures": [ "ARM", "ARM 64", "x86", "x86-64" ], "operatingSystems": [ "Linux" ], "logoUrl": "https://d3g9o9u8re44ak.cloudfront.net/logo/df86cf58-ee60-4061-b804-0be24d97ccb1/4a9ed9b2-69e4-4ede-b924-461462d20ef0.png", "aboutText": "## Quick reference.", "usageText": "## Supported architectures are as follows." } }
자세한 내용은 Amazon ECR Public 사용 설명서의 리포지토리 카탈로그 데이터를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 PutRepositoryCatalogData
를 참조하세요.
-
다음 코드 예시에서는 set-repository-policy
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 리포지토리에서 풀을 허용하도록 리포지토리 정책 설정
다음
set-repository-policy
예제에서는 ECR 퍼블릭 리포지토리 정책을 지정된 리포지토리에 적용하여 액세스 권한을 제어합니다.aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
의 콘텐츠:{ "Version" : "2008-10-17", "Statement" : [ { "Sid" : "allow public pull", "Effect" : "Allow", "Principal" : "*", "Action" : [ "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetDownloadUrlForLayer" ] } ] }
출력:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "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}" }
자세한 내용은 Amazon ECR Public 사용 설명서의 리포지토리 정책 명령문 설정을 참조하세요.
예제 2: 계정 내 IAM 사용자가 이미지를 푸시할 수 있도록 리포지토리 정책 설정
다음
set-repository-policy
예제에서는 계정 내 IAM 사용자가 정책 텍스트로file://my-repository-policy.json
이라는 입력 파일을 사용하여 AWS 계정의 ECR 리포지토리로 이미지를 푸시할 수 있도록 허용합니다.aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
의 콘텐츠:{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPush", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::account-id:user/push-pull-user-1", "arn:aws:iam::account-id:user/push-pull-user-2" ] }, "Action": [ "ecr-public:BatchCheckLayerAvailability", "ecr-public:PutImage", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload" ] } ] }
출력:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : [ \"arn:aws:iam::12345678901:user/admin\", \"arn:aws:iam::12345678901:user/eksuser1\" ]\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
자세한 내용은 Amazon ECR Public 사용 설명서의 리포지토리 정책 명령문 설정을 참조하세요.
예제 3: 다른 계정의 IAM 사용자가 이미지를 푸시할 수 있도록 리포지토리 정책 설정
다음
set-repository-policy
예제에서는 특정 계정이 AWS 계정에서 cli 입력 file://my-repository-policy.json을 사용하여 이미지를 푸시할 수 있도록 허용합니다.aws ecr-public set-repository-policy \ --repository-name
project-a/nginx-web-app
\ --policy-textfile://my-repository-policy.json
my-repository-policy.json
의 콘텐츠:{ "Version": "2008-10-17", "Statement": [ { "Sid": "AllowCrossAccountPush", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::other-or-same-account-id:role/RoleName" }, "Action": [ "ecr-public:BatchCheckLayerAvailability", "ecr-public:PutImage", "ecr-public:InitiateLayerUpload", "ecr-public:UploadLayerPart", "ecr-public:CompleteLayerUpload" ] } ] }
출력:
{ "registryId": "12345678901", "repositoryName": "project-a/nginx-web-app", "policyText": "{\n \"Version\" : \"2008-10-17\",\n \"Statement\" : [ {\n \"Sid\" : \"AllowCrossAccountPush\",\n \"Effect\" : \"Allow\",\n \"Principal\" : {\n \"AWS\" : \"arn:aws:iam::12345678901:role/RoleName\"\n },\n \"Action\" : [ \"ecr-public:BatchCheckLayerAvailability\", \"ecr-public:PutImage\", \"ecr-public:InitiateLayerUpload\", \"ecr-public:UploadLayerPart\", \"ecr-public:CompleteLayerUpload\" ]\n } ]\n}" }
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리 정책 예제를 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 SetRepositoryPolicy
를 참조하세요.
-
다음 코드 예시에서는 tag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 레지스트리의 기존 퍼블릭 리포지토리에 태그 지정
다음
tag-resource
예제는 퍼블릭 레지스트리에서project-a/nginx-web-app
이라는 리포지토리에 태그를 지정합니다.aws ecr-public tag-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --tagsKey=stack,Value=dev
\ --regionus-east-1
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에 태그 사용을 참조하세요.
예제 2: 퍼블릭 레지스트리에서 여러 태그로 기존 퍼블릭 리포지토리에 태그 지정.
다음
tag-resource
예제에서는 여러 태그로 기존 리포지토리에 태그를 지정합니다.aws ecr-public tag-resource \ --resource-arn
arn:aws:ecr-public::890517186334:repository/project-a/nginx-web-app
\ --tagsKey=key1,Value=value1
Key=key2,Value=value2
Key=key3,Value=value3
\ --regionus-east-1
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에 태그 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 TagResource
를 참조하세요.
-
다음 코드 예시에서는 untag-resource
을 사용하는 방법을 보여 줍니다.
- AWS CLI
-
예제 1: 퍼블릭 레지스트리에서 기존 퍼블릭 리포지토리의 태그 해제
다음
untag-resource
예제는 퍼블릭 레지스트리에서project-a/nginx-web-app
이라는 리포지토리에 태그를 지정합니다.aws ecr-public untag-resource \ --resource-arn
arn:aws:ecr-public::123456789012:repository/project-a/nginx-web-app
\ --tag-keysstack
\ --regionus-east-1
이 명령은 출력을 생성하지 않습니다.
자세한 내용은 Amazon ECR Public 사용 설명서의 퍼블릭 리포지토리에 태그 사용을 참조하세요.
-
API 세부 정보는 AWS CLI 명령 참조의 UntagResource
를 참조하세요.
-