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