Với thẻ 'mới nhất`, chúng tôi muốn tìm một thẻ khác có cùng ID hình ảnh trên Docker Hub.Làm cách nào để xác định ID hình ảnh Docker cho thẻ thông qua API Hub Docker?
Sau đây là cách để tìm hiểu tất cả các thẻ cho một repo với Docker Hub API v2:
TOKEN=$(curl -s -H "Content-Type: application/json" -X POST -d '{"username": "'${UNAME}'", "password": "'${UPASS}'"}' https://hub.docker.com/v2/users/login/ | jq -r .token)
curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/fluent/fluentd/tags/?page_size=100 | jq
(Xem gist.github.com/kizbitz)
Thật không may, nó không chứa ID hình ảnh nhưng luôn luôn là một Giá trị `null` cho khóa này:
$ curl -s -H "Authorization: JWT ${TOKEN}" https://hub.docker.com/v2/repositories/fluent/fluentd/tags/?page_size=100 | jq
{
"count": 36,
"next": null,
"previous": null,
"results": [
...
{
"name": "v0.14.11",
"full_size": 11964464,
"id": 7084687,
"repository": 219785,
"creator": 2923,
"last_updater": 2923,
"last_updated": "2016-12-27T07:16:41.294807Z",
"image_id": null,
"v2": true,
"platforms": [
5
]
},
...
Thật không may, ID hình ảnh khác với 'id` trong JSON ở trên.
$ docker images | grep fluent
docker.io/fluent/fluentd v0.14.11 1441d57beff9 3 weeks ago 38.25 MB
Về mặt lý thuyết, chúng ta có thể truy cập vào Manifests Docker và cùng với các hình ảnh ID với cuộc gọi Docker Registry này nhưng nó không giúp được gì:
$ curl -s -H "Authorization: JWT ${TOKEN}" "https://registry.hub.docker.com/v2/fluent/fluentd/manifests/latest"
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":[{"Type":"repository","Name":"fluent/fluentd","Action":"pull"}]}]}
(Xem stackoverflow.com)
Đây là sự cố tương tự trong trình gỡ lỗi GitHub của Docker nhưng tôi vẫn không thể tìm ra giải pháp: https://github.com/docker/distribution/issues/1490.
P.S .: Dưới đây là phiên bản Docker của tôi mà tôi đã cố gắng để đẩy một hình ảnh kiểm tra:
$ docker version
Client:
Version: 1.12.6
API version: 1.24
Package version: docker-common-1.12.6-5.git037a2f5.fc25.x86_64
Go version: go1.7.4
Git commit: 037a2f5/1.12.6
Built: Wed Jan 18 12:11:29 2017
OS/Arch: linux/amd64
lưu ý nhỏ, vì bạn chỉ muốn các tiêu đề sử dụng 'curl -I' để làm một HEAD HTTP. Ngoài ra, '-i' cũng giống như' -D -'. –