.NET을 사용하여 여러 컨테이너를 실행하고 있습니다 docker-compose
. 명령으로 애플리케이션 로그를 볼 수 있습니다 docker-compose logs
. 그러나 예를 들어 어딘가에 보내기 위해 원시 로그 파일에 액세스하고 싶습니다. 어디에 있습니까? 각 컨테이너 (컨테이너 내부?)마다 별도의 로그라고 생각하지만 어디에서 찾을 수 있습니까?
.NET을 사용하여 여러 컨테이너를 실행하고 있습니다 docker-compose
. 명령으로 애플리케이션 로그를 볼 수 있습니다 docker-compose logs
. 그러나 예를 들어 어딘가에 보내기 위해 원시 로그 파일에 액세스하고 싶습니다. 어디에 있습니까? 각 컨테이너 (컨테이너 내부?)마다 별도의 로그라고 생각하지만 어디에서 찾을 수 있습니까?
답변:
컨테이너의 로그는 다음 위치에서 찾을 수 있습니다.
/var/lib/docker/containers/<container id>/<container id>-json.log
(기본 로그 형식 인 json을 사용하는 경우)
docker ps
docker ps
, ID와 함께 사용 가능한 모든 컨테이너를 얻을 수 있습니다. 원하는 컨테이너의 ID를 복사 한 다음 /var/lib/docker/containers/
run 에서 복사합니다 ls | grep <paste the copied docker ID>
. 그럼 당신은 그 고정 표시기 컨테이너 볼 수 있습니다
cd /var/lib/docker/containers/
-bash : cd : / var / lib / docker / containers / : 권한 거부 sudo cd /var/lib/docker/containers/
sudo : cd : 명령을 찾을 수 없음
docker ps --no-trunc
전체 ID를보기 위해 해야 했다
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
종료되지 않는 가능한 문제
logs
컨테이너가 이미 중지 된 경우 명령 이 종료되지 않음
004279dd2985037950beeba7e6fe45c10354476d3b82afb68e72dd612b03a8ff
있습니다. 특정 컨테이너에 대해 살펴볼 폴더를 어떻게 알 수 있습니까?