Programing

컨테이너의 로그가있는 로그 파일은 어디에 있습니까?

lottogame 2020. 9. 8. 21:53
반응형

컨테이너의 로그가있는 로그 파일은 어디에 있습니까?


.NET을 사용하여 여러 컨테이너를 실행하고 있습니다 docker-compose. 명령으로 애플리케이션 로그를 볼 수 있습니다 docker-compose logs. 그러나 예를 들어 어딘가에 보내기 위해 원시 로그 파일에 액세스하고 싶습니다. 어디에 있습니까? 각 컨테이너 (컨테이너 내부?)마다 별도의 로그라고 생각하지만 어디에서 찾을 수 있습니까?


컨테이너의 로그는 다음 위치에서 찾을 수 있습니다.

/var/lib/docker/containers/<container id>/<container id>-json.log

(기본 로그 형식 인 json을 사용하는 경우)


docker inspect각 컨테이너는 로그 위치를 확인할 수 있습니다 .

docker inspect --format='{{.LogPath}}' $INSTANCE_ID

그리고 로그가 집합 적 크기를 관리 할 위치를 파악하거나 로깅 자체의 매개 변수를 조정하려는 경우 다음과 같은 관련성을 찾을 수 있습니다.

로그 용으로 예약 된 공간 수정

이것은 로그 기록을 지우는 기능에 대한 요청 (문제 1083) 에서 가져온 것입니다 .

Docker 1.8 및 docker-compose 1.4에는 docker compose 로그 드라이버 및 log-opt max-size를 사용하여 로그 크기를 제한하는 방법이 이미 있습니다 .

mycontainer:
  ...
  log_driver: "json-file"
  log_opt:
    # limit logs to 2MB (20 rotations of 100K each)
    max-size: "100k"
    max-file: "20"

docker compose 파일 버전 '2'에서 구문이 약간 변경되었습니다.

version: '2'
...
mycontainer:
  ...
  logging:
    #limit logs to 200MB (4rotations of 50M each)
    driver: "json-file"
    options:
      max-size: "50m"
      max-file: "4"

(두 구문 모두에서 숫자는 따옴표로 묶인 문자열로 표현됩니다.)

docker-compose logs종료되지 않는 가능한 문제

  • 문제 1866 : logs컨테이너가 이미 중지 된 경우 명령 이 종료되지 않음

각 컨테이너의 로그가 차지하는 공간을 확인하려면 다음을 사용하십시오.

docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl

( sudo전에 가 필요할 수 있습니다 ls).


적은 수의 로그 파일을 직접 보려면 다음을 사용합니다.

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less

./viewLogs.sh CONTAINERNAME로 실행


2018 년 8 월 22 일부터 로그는 다음 위치에서 찾을 수 있습니다.

/data/docker/containers/<container id>/<container id>-json.log

Windows에서 기본 위치는 C:\ProgramData\Docker\containers\<container-id>-json.log입니다.

참고URL : https://stackoverflow.com/questions/33017329/where-is-a-log-file-with-logs-from-a-container

반응형