Получить последнюю дату создания образа Docker из реестра


Как можно получить последнюю дату создания образа Docker, который существует в реестре? Недавно мы столкнулись с проблемой, что образ Docker не был автоматически вытянут на некоторых из наших подчиненных серверов кластера, и проект работал в очень устаревшей контейнерной среде. Поэтому я собираюсь запускать cron-скрипт один раз в день, чтобы проверить, что вытащенный образ Docker не старше образа Docker реестра на 24 часа.

2 2

2 ответа:

Самый простой способ, который я знаю, - это написать простой скрипт, который используетDocker Registry REST API и выполняет базовую манипуляцию результатами для ваших нужд.

Вот пример кода в Python 3, который сделал бы это для РЕПО, с которым я работаю:

import requests

repo_tag_url = 'https://hub.docker.com/v2/repositories/streamsets/datacollector/tags'
results = requests.get(repo_tag_url).json()['results']
for repo in results:
    print(repo['name'], repo['last_updated'])

Который, например, возвращает:

3.0.0.0-SNAPSHOT 2017-10-23T14:43:29.888877Z
latest 2017-10-05T23:05:03.636155Z
2.7.2.0 2017-10-05T22:50:53.269831Z
2.7.2.0-RC5 2017-10-05T19:34:19.523402Z
2.7.2.0-RC4 2017-10-05T02:05:52.522323Z
2.7.2.0-RC3 2017-10-04T00:08:02.929502Z
2.8.0.0-SNAPSHOT 2017-10-03T21:55:08.042479Z
2.7.2.0-RC2 2017-10-03T19:20:56.642686Z
2.7.2.0-RC21 2017-09-30T21:42:27.924190Z
2.7.2.0-RC1 2017-09-30T17:34:14.409320Z

Что-то вроде истории докеров?

Из документа:

Описание: показать историю изображения

Использование: история докера [параметры] изображение

Например:

 $ docker history imageName

И с помощью опции --format:

$ docker images --format "{{.ID}}: {{.Created}} ago"

cc1b61406712: 2 weeks ago
<missing>: 2 weeks ago
<missing>: 2 weeks ago
<missing>: 2 weeks ago
<missing>: 2 weeks ago
<missing>: 3 weeks ago
<missing>: 3 weeks ago
<missing>: 3 weeks ago