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, որոնք հավաքում են լոգերը և ուղարկում կենտրոնական համակարգ:

Այս տարբերակները թույլ են տալիս արդյունավետ կառավարել և կենտրոնացնել լոգերը մեծածավալ միջավայրերում։