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 ретінде орналастыру, ол журналдарды жинап, орталық жүйеге жібереді.