繁体   English   中英

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

[英]How to get the status of Docker Image Tag that lies in a private registry

是否可以通过API或CLI获取私有存储库中的Docker映像的状态?

用例:

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

我在Docker API文档中进行了大量搜索,但找不到任何解决方案。

docker push registry/repo:tag是一个很好的确认。 如果您想使用cli进行验证,只需再次docker pull registry/repo:tag镜像docker pull registry/repo:tag

V2 Registry API中,您可以检索存储库标签的清单

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

所以

$ docker pull busybox:latest
$ docker tag busybox:latest localhost:5000/busybox:latest
$ docker push 10.8.8.8:5000/busybox:latest
The push refers to a repository [localhost:5000/busybox]
c0de73ac9968: Pushed 
latest: digest: sha256:68effe31a4ae8312e47f54bec52d1fc925908009ce7e6f734e1b54a4169081c5 size: 527

$ curl -si http://localhost:5000/v2/busybox/manifests/latest

哪个返回

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注册表使用不同的存储格式,这也意味着不同的摘要校验和。 您可能需要在history数组中查找v1Compatibility以将本地V1映像清单的详细信息( v1Compatibility docker inspect local/image:tag )与远程V2存储相匹配。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM