Есть ли способ получить дату создания образа докера с помощью docker API для python

Я хотел бы получить created atдата для образа докера с использованием docker API. Это возможно? Я не вижу этого в документации https://docker-py.readthedocs.io/en/stable/images.html. Я вижу способ получить его, используя requests но надеялся использовать docker API, поскольку мой код использует API докеров для получения другой информации, такой как идентификатор реестра.

import docker
cli=docker.from_env()
cl_image = cli.images.get_registry_data(reg_url, auth_config=None)
image_hash = cl_image.id

2 ответа

Временная метка создания изображения находится на объекте Image в разделеattrsсвойство:

      from dateutil.parser import isoparse
import docker

client = docker.from_env()

images = client.images.list()
img = images[0]

created_str = img.attrs["Created"]
created_datetime = isoparse(created_str)
print(created_datetime)

Нет, получение даты создания не поддерживается DockerSDK для Python. В createАтрибут просто не существует, поэтому вы не сможете получить это значение. Так что вам придется использовать request модуль для получения данных из Docker API.

Примечание: ваша библиотека импорта не должна называться API это просто библиотека, поддерживающая Docker Engine API. Реальность APIнаходится здесь, который вы будете использовать его, чтобы сделать GET запрос.

Редактировать:

Я не уверен, правильно ли вы выполняете аутентификацию. Вам необходимо предоставить учетные данные со значениями и закодировать в base64url (JSON) и передать их как X_Registry-Authзаголовок в вызове запроса, см. это. Этот пример прекрасно иллюстрирует то, что вам нужно сделать, хотя и показан в контексте cURL POST запрос.

Другие вопросы по тегам