Sobes.tech
Junior

Ishlayotgan konteynerda loglarni qanday ko'rish mumkin?

sobes.tech AI

AIdan javob

# Контейнернинг барча логларини кўриш
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) контейнерда ёки янги контейнер сифатида жойлаштириш, улар логларни йиғиб, марказлаштирилган тизимга юбориш.