@dan0sss

Как сохранить логи докера на питоне?

Уже несколько часов бьюсь. Есть следующий код:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import docker

client = docker.from_env()

container = client.containers.run(
    'alpine',
    name='test',
    command='apk add openjdk11',
    detach=True,
)

container.start()

for line in container.logs(follow=True, stream=True):
    print(line.decode('utf-8').strip())


Он создает контейнер и выполняет команду apk add openjdk11. Логи этой команды сохраняются в docker logs. Но если я заново запущу контейнер и выполню новую команду:
#! /usr/bin/env python
# -*- coding: utf-8 -*-

import docker

client = docker.from_env()
container = client.containers.get('test')

container.start()

cmd = 'echo "Hello, world!"'
exec_id = container.exec_run(cmd, stdout=True, stderr=True, stream=True)

for line in container.logs(follow=True, stream=True):
    print(line.decode('utf-8').strip())


то логи этой команды уже не сохраняются. Никак не могу найти решение этой проблемы. Нужно сохранять вывод команды именно в docker logs .
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы