won*_*ton 4 docker docker-registry elastic-container-registry
ECR上的UI不允许您将标签应用于图像。当您将具有存在标签的图像推送到ECR时,现有图像将按预期取消标记。但是,似乎没有下载未标记图像的方法。例如,我不能简单地下载图像哈希
docker pull myarn.amazonaws.com/sandbox:e226e9aaa12beb32bfe65c571cb60605b2de13338866bc832bba0e39f6819365
Error response from daemon: manifest for myarn.amazonaws.com/sandbox:e226e9aaa12beb32bfe65c571cb60605b2de13338866bc832bba0e39f6819365 not found
Run Code Online (Sandbox Code Playgroud)
won*_*ton 10
因此,我发现了一种用户不友好的方式。您首先标记未标记的图像,然后再下载。在这里,我将未标记的图像标记为backup
MANIFEST=$(aws ecr batch-get-image --repository-name sandbox --image-ids imageDigest=sha256:e226e9aaa12beb32bfe65c571cb60605b2de13338866bc832bba0e39f6819365 --query 'images[].imageManifest' --output text)
aws ecr put-image --repository-name sandbox --image-tag backup --image-manifest "$MANIFEST"
Run Code Online (Sandbox Code Playgroud)
然后我可以正常下载
docker pull myarn.amazonaws.com/sandbox:backup
Run Code Online (Sandbox Code Playgroud)
小智 7
您必须使用 AWS 最近在其 UI 上建议的另一种表示法(当时可能不可用):
docker pull myarn.amazonaws.com/sandbox@sha256:e226e9aaa12beb32bfe65c571cb60605b2de13338866bc832bba0e39f6819365
至少它确实适用于我未标记的图像。
假设 ECR 存储库 arn 为1283761230897.dkr.ecr.us-east-1.amazonaws.com/my-repository:
要提取未标记的 docker 映像,请使用可以从 ECR 存储库复制的 sha 来获取未标记的映像(感谢@Gy\xc5\x91z\xc5\x91 Papp \' 答案),例如:
\ndocker pull 1283761230897.dkr.ecr.us-east-1.amazonaws.com/my-repository@sha256:bee1809b6ab2918yfdjsajhf21398f41cfc2dcc69d27253\nRun Code Online (Sandbox Code Playgroud)\n要在拉取后重新标记它,请使用 docker tag 和您想要的任何标签,下面的示例使用 tag 对其进行标记my-new-tag:
docker tag 1283761230897.dkr.ecr.us-east-1.amazonaws.com/my-repository@sha256:bee1809b6ab2918yfdjsajhf21398f41cfc2dcc69d27253 1283761230897.dkr.ecr.us-east-1.amazonaws.com/my-repository:my-new-tag\nRun Code Online (Sandbox Code Playgroud)\n然后将标记的版本推送回 AWS ECR:
\ndocker push 1283761230897.dkr.ecr.us-east-1.amazonaws.com/my-repository:my-new-tag\nRun Code Online (Sandbox Code Playgroud)\n您需要先使用first在本地登录ECRget-login ...
| 归档时间: |
|
| 查看次数: |
1707 次 |
| 最近记录: |