Как вести журналы контейнеров Docker: несколько методов с примерами кода

Следить за журналами контейнера Docker означает постоянно отображать самые последние записи журнала, созданные работающим контейнером. Есть несколько способов добиться этого. Вот несколько примеров кода:

Метод 1. Использование интерфейса командной строки Docker

docker logs -f <container_name_or_id>

Эта команда использует команду logsинтерфейса командной строки Docker с флагом -fдля отслеживания журналов в режиме реального времени для указанного контейнера.

Метод 2: использование Docker Compose

docker-compose logs -f <service_name>

Если вы используете Docker Compose для управления контейнерами, вы можете использовать команду logsс флагом -f, за которым следует имя службы, которую вы хотите использовать. журналы для.

Метод 3. Использование Docker SDK для Python

import docker
client = docker.from_env()
container = client.containers.get('<container_name_or_id>')
logs = container.logs(follow=True)
for line in logs:
    print(line.decode().strip())

Этот метод использует Docker SDK для Python для получения объекта-контейнера, а затем непрерывной потоковой передачи журналов, установив для параметра followзначение Trueв logs( )метод.

Метод 4. Использование Docker API с cURL

curl -sS -H "Content-Type: application/json" -X POST --unix-socket /var/run/docker.sock http:/v1.24/containers/<container_id>/logs?stdout=1&stderr=1&follow=1

Этот метод использует cURL для отправки API-запроса демону Docker. Замените фактическим идентификатором контейнера, для которого вы хотите отслеживать журналы.