Sobes.tech
Junior

Иштеп жаткан контейнердеги журналдарды кантип көрө аласыз?

sobes.tech AI

AIден жооп

# Контейнердин бардык логдорун көрүү
docker logs <container_id_or_name>

# Соңку 100 сап логдорду көрүү
docker logs --tail 100 <container_id_or_name>

# Контейнер ишке киргизилгени менен логдорду көрүү
docker logs --follow <container_id_or_name>

# Белгилүү бир убактан баштап логдорду көрүү
# Убакыт форматы: RFC3339 (YYYY-MM-DDTHH:MM:SSZ)
docker logs --since 2023-10-27T10:00:00Z <container_id_or_name>

# Белгилүү бир убакыт аралыгындагы логдорду көрүү
docker logs --since 2023-10-27T10:00:00Z --until 2023-10-27T11:00:00Z <container_id_or_name>

# Логдорду файлга сактоо
docker logs <container_id_or_name> > container_logs.txt

Контейнерлердеги журналдар, колдонмонун ичиндеги стандарттык чыгуу (stdout) жана каталар (stderr) агымдарын багыттоого негизделген. Docker бул агымдарды чогултуп, docker logs командасы аркылуу жеткиликтүү кылат.

Альтернативдүү ыкмалар:

  1. Docker лог драйверлерин колдонуу: Docker демонун конфигурациялоо, журналдарды борборлоштурулган лог системдерине жөнөтүү үчүн (мисалы, ELK Stack, Splunk, CloudWatch Logs) ар кандай лог драйверлер аркылуу. Бул ыкма өндүрүштүк чөйрөлөр үчүн эң жакшы.

  2. Томдорду картага түшүрүү: Хост системинен контейнерге томду монтаждоо, анда колдонмо журналдарды жазат.

    # docker-compose.yml мисалы
    services:
      my_app:
        image: my_app_image
        volumes:
          - /var/log/myapp:/app/logs # Томду картага түшүрүү
    

    Булдан кийин журналдар белгиленген жолдо хост машинада жеткиликтүү болот.

  3. Журнал чогултуу агенттерин орнотуу: Журналдарды чогултуучу агентти (мисалы, Filebeat, Fluentd) контейнерде же sidecar катары жайгаштыруу, ал журналдарды чогултуп, борборлоштурулган системага жөнөтөт.

Бул ыкмалар чоң чөйрөлөрдө журналдарды натыйжалуу башкарууга жана борборлоштурууга мүмкүндүк берет.