Как извлечь имя образа докера из ша - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь разрешить имя образа докера, используя значение sha256. Docker уже предоставляет API для этого? Или мне нужно самому что-то написать?

Согласно предложению @Zgurskyi, я попытался использовать inspect, как-то это выдает ошибку:

# docker images --digests
REPOSITORY                               TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
alpine                                   3.4                 sha256:b733d4a32c4da6a00a84df2ca32791bb03df95400243648d8c539e7b4cce329c   b7c5ffe56db7        7 weeks ago         4.82MB

# docker image inspect b733d4a32c4da6a00a84df2ca32791bb03df95400243648d8c539e7b4cce329c
[]
Error: No such image: b733d4a32c4da6a00a84df2ca32791bb03df95400243648d8c539e7b4cce329c

ТИА.

Ответы [ 2 ]

1 голос
/ 22 марта 2019

Для разрешения дайджеста вам также необходимо указать имя хранилища. E.g.:

docker inspect alpine@sha256:b733d4a32c4da6a00a84df2ca32791bb03df95400243648d8c539e7b4cce329c

Вы также можете использовать форматирование докера вместо того, чтобы полагаться на jq, который не всегда может быть установлен (хотя так и должно быть):

# to list the first RepoTag, this can fail if the RepoTags list is empty (locally built image):
$ docker image inspect "${repo}@${sha256}" --format '{{index .RepoTags 0}}'

# to list all RepoTags with a space separator:
$ docker image inspect "${repo}@${sha256}" --format '{{range $v := .RepoTags}}{{$v}} {{end}}'
1 голос
/ 22 марта 2019

Вы можете использовать команду inspect, и RepoTags - это, вероятно, информация, которая вам нужна:

docker image inspect <sha256>

Если у вас установлено jq, просто используйте следующее:

docker image inspect <sha256> | jq .[0].RepoTags
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...