Docker registry layer metadata correct?

Can someone offer advice here please - when querying docker.elastic.co for image layers (any 2+ schema) the results are totally different to a 3rd party registry for the identical image (e.g. AWS ECR):

  • Authenticate to ECR
  • Create empty ECR repo elastic/beats/filebeat
  • Pull docker.elastic.co/beats/filebeat:7.8.1 to local system
  • Tag image as elastic/beats/filebeat:7.8.1
  • Push image to ECR
  • Get API token for elastic.co: $ token=$(curl -sSL 'https://docker-auth.elastic.co/auth?service=token-service&scope=repository:beats/filebeat:pull' |jq -r .token)
  • Query elastic for image layers:
$ curl -sSL --header 'Accept: application/vnd.docker.distribution.manifest.v2+json' --header "Authorization: Bearer $token" https://docker.elastic.co/v2/beats/filebeat/manifests/7.8.1 | jq .layers
[
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 85343635,
      "digest": "sha256:86dbb57a308363a145832950313a7a1dccb08353e1291ec557d823e18c16f45f"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 27361548,
      "digest": "sha256:1d91599c7521d9f5bb524c11ecb9c770478d8d26398e63b5a570c76fb2d8cc5f"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 33274248,
      "digest": "sha256:8535fd565fe3e35248202402b35b935772ba5f7f940689fca740b8f6b13a9f72"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 618,
      "digest": "sha256:42292adeddfc5e0d3ddf3d27cdd70c19ad1efef8f24569334e7891da90a818d3"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 611,
      "digest": "sha256:4675a5596b4ef5b0399f522a891c2f9c899c66549b7ef80652fc4513b377f9ba"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 605,
      "digest": "sha256:bb17c3ede2dd99ac63b8608652e5087178377b990065456fa3dcbee7cceb22e4"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 33275550,
      "digest": "sha256:7f5f84ea1a4930f33e29a8f3c0c35961d2324d510d75b1289e3f5cd163437615"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 1962,
      "digest": "sha256:606d43ad155a11a93c82074268521f4dc0960270be67ccecc0092f0f45b783aa"
    }
]
  • Get API token for ECR: $ token=$(aws ecr get-authorization-token | jq -r '.authorizationData[].authorizationToken')
  • Query ECR for image layers:
$ curl -sSL --header 'Accept: application/vnd.docker.distribution.manifest.v2+json' --header "Authorization: Basic $token" https://<your account>.dkr.ecr.<your region>.amazonaws.com/v2/elastic/beats/filebeat/manifests/7.8.1 | jq .layers
[
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 75880141,
      "digest": "sha256:524b0c1e57f8ee5fee01a1decba2f301c324a6513ca3551021264e3aa7341ebc"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 24427335,
      "digest": "sha256:d509963c312a7051b89331ae32a6d9a3cc940309b7f0758f3fe5d9935e44338a"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 28734007,
      "digest": "sha256:ec64c0fa2d174cc9f6e25fd6560ccfd7ee0578817a4167fff022426b24a3994f"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 597,
      "digest": "sha256:d377ed92b0f4ee1a952ca9d0d16bd3ab31e0d97afc623d416453027e282d47b9"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 594,
      "digest": "sha256:052656815b35af59a218b4faf2b649a3e8f367c86cc682af34549f4c3591d40e"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 562,
      "digest": "sha256:9f3a1d66b0d59051373b4cdb9d3e213e3ccebc466b14b92ed388916c1b065920"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 28734277,
      "digest": "sha256:c615388da0249b57080f8a6b1a27752e4ee9927afaf693204ef169d895cd83d3"
    },
    {
      "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
      "size": 1764,
      "digest": "sha256:16809b8e48b4c4c95c36b6ba3bf521016a83331eab3301335eced45319a6585c"
    }
]
  • This is the case for v2.1 v2.2 or v2+ schema

So, who is correct?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.