본문 바로가기

TroubleShooting/Docker

docker logs 파일로 저장

728x90

docker logs <컨테이너> 명령어로 로그를 확인하려면 너무 많아서 지나가고 마는데, 리다이렉트(>) 도 안되고 파이프(|) 로 more 나 less 도 안된다.

 

분명 표준 출력인거 같은데, 리다이렉트도 안되니 다른 원인이 있을거 같지만 나중에 찾기로 하고 일단 파일로 저장하는 방법을 정리하면

# docker logs backend > log1 2>&1

: stderr(2) 를 stdout(1) 와 함께 log1 에 redirect

# docker logs backend >& log2

: stdout(1) , stderr(2) 를 log2 에 redirect

 

 

docker 문서를 확인해보니 아래 명령어로 실제 로그 파일이 저장되는 위치를 확인할 수 있다.

docker inspect --format='{{.LogPath}}' containername

아래 처럼 파일이 발견이 되는데, tail -f 파일명으로 live 로 확인할 수 있다.

/var/lib/docker/containers/f1c22af098cc8c92a2db85602ef937120c6b44862c3039264a1b89c92da77fb2/f1c22af098cc8c92a2db85602ef937120c6b44862c309264a1b89c92da77fb2-json.log

 

참고

https://stackoverflow.com/questions/41144589/how-to-redirect-docker-container-logs-to-a-single-file