如何获取位于私有注册表中的Docker Image标记的状态

如何获取位于私有注册表中的Docker Image标记的状态,docker,repository,containers,Docker,Repository,Containers,有没有办法通过API或CLI获取位于私有存储库中的Docker映像的状态 用例: 我正在尝试将带有特定标记的Docker图像推送到私有注册表中。 推了之后,我需要知道它是否真的被推了。 如果我通过“图像名称”和“图像标签”,我需要知道该图像的状态。 我在Docker API文档中搜索了很多,但没有找到任何解决方案。Docker push registry/repo:tag的成功是一个很好的确认。如果要使用cli进行验证,只需再次拉取映像docker拉取注册表/repo:tag 在中,您可以检索存

有没有办法通过API或CLI获取位于私有存储库中的Docker映像的状态

用例:

我正在尝试将带有特定标记的Docker图像推送到私有注册表中。 推了之后,我需要知道它是否真的被推了。 如果我通过“图像名称”和“图像标签”,我需要知道该图像的状态。


我在Docker API文档中搜索了很多,但没有找到任何解决方案。

Docker push registry/repo:tag的成功是一个很好的确认。如果要使用cli进行验证,只需再次拉取映像
docker拉取注册表/repo:tag

在中,您可以检索存储库标记的

GET /v2/<repo>/manifests/<tag>
返回

HTTP/1.1 200 OK
Content-Length: 2735
Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
Docker-Content-Digest: sha256:45ed6b2591c5e9be6df88febcef2fb613d45eea5883a1cc80fecde4c6c3c2c11
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:45ed6b2591c5e9be6df88febcef2fb613d45eea5883a1cc80fecde4c6c3c2c11"
X-Content-Type-Options: nosniff
Date: Mon, 13 Mar 2017 04:16:00 GMT

{
   "schemaVersion": 1,
   "name": "busybox",
   "tag": "latest",
   "architecture": "amd64",
   "fsLayers": [
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:04176c8b224aa0eb9942af765f66dae866f436e75acef028fe44b8a98e045515"
      }
   ],
   "history": [
      {
         "v1Compatibility": "{\"architecture\":\"amd64\",\"config\":{\"Hostname\":\"1295ff10ed92\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"sh\"],\"Image\":\"sha256:0d7e86beb406ca2ff3418fa5db5e25dd6f60fe7265d68a9a141a2aed005b1ae7\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"container\":\"d12e9fb4928df60ac71b4b47d56b9b6aec383cccceb3b9275029959403ab4f73\",\"container_config\":{\"Hostname\":\"1295ff10ed92\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"/bin/sh\",\"-c\",\"#(nop) \",\"CMD [\\\"sh\\\"]\"],\"Image\":\"sha256:0d7e86beb406ca2ff3418fa5db5e25dd6f60fe7265d68a9a141a2aed005b1ae7\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"created\":\"2017-03-09T18:28:04.586987216Z\",\"docker_version\":\"1.12.6\",\"id\":\"21bd05c98a33998aba2cea975e0fcdc4c8b051070b70ed36f28c0bc55bcdacb6\",\"os\":\"linux\",\"parent\":\"86549330fef190e649817430dfaba05934d46b450fe2004cc1e2afc36587054c\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"86549330fef190e649817430dfaba05934d46b450fe2004cc1e2afc36587054c\",\"created\":\"2017-03-09T18:28:03.975884948Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:c9ecd8ff00c653fb652ad5a0a9215e1f467f0cd9933653b8a2e5e475b68597ab in / \"]}}"
      }
   ],
   "signatures": [
      {
         "header": {
            "jwk": {
               "crv": "P-256",
               "kid": "VQYK:XW62:J7X2:AQVH:VHUG:RXKT:QI6P:KERD:5IXL:4A6V:2JAT:46HP",
               "kty": "EC",
               "x": "gKuod_XxG1k5NYCD3BLrYZTDNfD2o19UrihkP7hKBhU",
               "y": "lkrBDaDkjdFGJE2cmhQCFNyeUeczAegPBeseor3Kz3I"
            },
            "alg": "ES256"
         },
         "signature": "2Z33_qBoBFeS7Pvash6Mh3yUq2bXfbHUO3SXG4QA6GFXoJ2kVAhoXr8v4kGpjVC2CcRVsYcP1duv9Yjc8bSLog",
         "protected": "eyJmb3JtYXRMZW5ndGgiOjIwODgsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxNy0wMy0xM1QwNDoxNjowMFoifQ"
      }
   ]
}

V2注册表使用不同的存储格式,这也意味着不同的摘要校验和。您可能需要在
历史记录
数组中查找
V1兼容性
,以便将本地V1映像清单(
docker inspect local/image:tag
)的详细信息与远程V2存储区相匹配。

清理了语法,改进了格式,删除了“谢谢”因为一般认为这对SOThanks Matt来说是多余的这对我很有帮助
HTTP/1.1 200 OK
Content-Length: 2735
Content-Type: application/vnd.docker.distribution.manifest.v1+prettyjws
Docker-Content-Digest: sha256:45ed6b2591c5e9be6df88febcef2fb613d45eea5883a1cc80fecde4c6c3c2c11
Docker-Distribution-Api-Version: registry/2.0
Etag: "sha256:45ed6b2591c5e9be6df88febcef2fb613d45eea5883a1cc80fecde4c6c3c2c11"
X-Content-Type-Options: nosniff
Date: Mon, 13 Mar 2017 04:16:00 GMT

{
   "schemaVersion": 1,
   "name": "busybox",
   "tag": "latest",
   "architecture": "amd64",
   "fsLayers": [
      {
         "blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
      },
      {
         "blobSum": "sha256:04176c8b224aa0eb9942af765f66dae866f436e75acef028fe44b8a98e045515"
      }
   ],
   "history": [
      {
         "v1Compatibility": "{\"architecture\":\"amd64\",\"config\":{\"Hostname\":\"1295ff10ed92\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"sh\"],\"Image\":\"sha256:0d7e86beb406ca2ff3418fa5db5e25dd6f60fe7265d68a9a141a2aed005b1ae7\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"container\":\"d12e9fb4928df60ac71b4b47d56b9b6aec383cccceb3b9275029959403ab4f73\",\"container_config\":{\"Hostname\":\"1295ff10ed92\",\"Domainname\":\"\",\"User\":\"\",\"AttachStdin\":false,\"AttachStdout\":false,\"AttachStderr\":false,\"Tty\":false,\"OpenStdin\":false,\"StdinOnce\":false,\"Env\":[\"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\"],\"Cmd\":[\"/bin/sh\",\"-c\",\"#(nop) \",\"CMD [\\\"sh\\\"]\"],\"Image\":\"sha256:0d7e86beb406ca2ff3418fa5db5e25dd6f60fe7265d68a9a141a2aed005b1ae7\",\"Volumes\":null,\"WorkingDir\":\"\",\"Entrypoint\":null,\"OnBuild\":null,\"Labels\":{}},\"created\":\"2017-03-09T18:28:04.586987216Z\",\"docker_version\":\"1.12.6\",\"id\":\"21bd05c98a33998aba2cea975e0fcdc4c8b051070b70ed36f28c0bc55bcdacb6\",\"os\":\"linux\",\"parent\":\"86549330fef190e649817430dfaba05934d46b450fe2004cc1e2afc36587054c\",\"throwaway\":true}"
      },
      {
         "v1Compatibility": "{\"id\":\"86549330fef190e649817430dfaba05934d46b450fe2004cc1e2afc36587054c\",\"created\":\"2017-03-09T18:28:03.975884948Z\",\"container_config\":{\"Cmd\":[\"/bin/sh -c #(nop) ADD file:c9ecd8ff00c653fb652ad5a0a9215e1f467f0cd9933653b8a2e5e475b68597ab in / \"]}}"
      }
   ],
   "signatures": [
      {
         "header": {
            "jwk": {
               "crv": "P-256",
               "kid": "VQYK:XW62:J7X2:AQVH:VHUG:RXKT:QI6P:KERD:5IXL:4A6V:2JAT:46HP",
               "kty": "EC",
               "x": "gKuod_XxG1k5NYCD3BLrYZTDNfD2o19UrihkP7hKBhU",
               "y": "lkrBDaDkjdFGJE2cmhQCFNyeUeczAegPBeseor3Kz3I"
            },
            "alg": "ES256"
         },
         "signature": "2Z33_qBoBFeS7Pvash6Mh3yUq2bXfbHUO3SXG4QA6GFXoJ2kVAhoXr8v4kGpjVC2CcRVsYcP1duv9Yjc8bSLog",
         "protected": "eyJmb3JtYXRMZW5ndGgiOjIwODgsImZvcm1hdFRhaWwiOiJDbjAiLCJ0aW1lIjoiMjAxNy0wMy0xM1QwNDoxNjowMFoifQ"
      }
   ]
}