首页 > 解决方案 > 如何为 AWS ecr put-image 查找 Fluentd docker 镜像的镜像清单

问题描述

团队,我正在尝试将 Fluentd 图像上传到 AWS ecr 并出现错误。我有下面的图像并标记。

docker images | grep fluent
123.dkr.ecr.us-west-1.amazonaws.com/sre-tools/fluentd-ds   latest                             b285a4690f19        5 months ago        209MB
123.dkr.ecr.us-west-1.amazonaws.com/sre-tools/fluentd-ds   v1.8                               b285a4690f19        5 months ago        209MB
fluentd                                                             v1.8-debian-1                      b285a4690f19        5 months ago        209MB
aws ecr put-image  --repository-name sre-tools/fluentd-ds:v1.8
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help
aws: error: argument --image-manifest is required

我应该从哪里获得图像清单?抱歉,这是我的第一次。

是否显示图像的sha256?如果是的话,我在下面尝试过

 docker inspect  b285a4690f19 | grep sha -i
        "Id": "sha256:b285a4690f19ea48e817d0654df9d9225abb9c8ddb2fd3ffb9c1e00b3d7189ac",
            "fluentd@sha256:a25d9ebbb344c40e1e84c173a466bc1f6e77a0233567fe778db1c6ffdeccf2e8"
                "RUBY_DOWNLOAD_SHA256=d5d6da717fd48524596f9b78ac5a2eeb9691753da5c06923a6c31190abe01a62",
            "Image": "sha256:66dc2c47c50cdf7f75ec68d1d027b4f139c4e5afcb2e0229ded10c659feafc43",
                "RUBY_DOWNLOAD_SHA256=d5d6da717fd48524596f9b78ac5a2eeb9691753da5c06923a6c31190abe01a62",
            "Image": "sha256:66dc2c47c50cdf7f75ec68d1d027b4f139c4e5afcb2e0229ded10c659feafc43",
                "sha256:488dfecc21b1bc607e09368d2791cb784cf8c4ec5c05d2952b045b3e0f8cc01e",
                "sha256:6bab58ebc554a7f95a80ee2dca3fbb05e05a5bceadab8b6d99d9eb41e0c7532f",
aws ecr put-image  --repository-name sre-tools/fluentd-ds --image-manifest "sha256:a25d9ebbb344c40e1e84c173a466bc1f6e77a0233567fe778db1c6ffdeccf2e8"

An error occurred (InvalidParameterException) when calling the PutImage operation: Invalid parameter at 'ImageManifest' failed to satisfy constraint: 'Invalid JSON syntax'

标签: docker-registryamazon-ecr

解决方案


我必须提供一个 json 文件而不是直接输入

aws ecr put-image  --repository-name sre-tools/fluentd-ds --image-manifest manifest.json"

另外,通过使用 docker cli 得到了解决方法

docker push sre-tools/fluentd-ds:v1

推荐阅读