실시간으로 Docker 로그를 파일에 쓰는 방법('tail -f')

실시간으로 Docker 로그를 파일에 쓰는 방법('tail -f')

내 docker 출력 로그 stdout stderr은 다음 명령을 사용하여 볼 수 있습니다.

docker logs -f $LOGS_CONTAINER_ID

또한 각 줄에 컨테이너 ID를 입력하는 "sed"를 추가했습니다.

docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /"

실행하면 다음과 같은 결과가 나타납니다.

container112 error 10:20:10 problem
container112 info 10:20:09 not problem
container112 error 10:20:01 problem

여기서 "container112"는 $LOGS_CONTAINER_ID입니다.

여태까지는 그런대로 잘됐다. 이제 위의 명령을 파일(log.out)로 출력하고 싶어서 다음 명령을 작성했습니다.

docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /" >> log.out

log.out에 로그를 기록하지만 새 로그를 얻지 못하는 경우가 발생합니다(새 세션을 열고 를 실행하면 tail -f log.out출력을 얻지 못합니다). 그래서 나는 또한 다음을 시도했습니다.

tail -f $(docker logs -f $LOGS_CONTAINER_ID | sed "s/^/$LOGS_CONTAINER_ID /") >> log.out

하지만 그것도 작동하지 않습니다. 문제가 무엇입니까?

답변1

이것이 도움이 됩니까?

docker logs $CONTAINERID 2>&1 | cat > logfile.log

관련 정보