Уже несколько часов бьюсь. Есть следующий код:
#! /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 .