Docker logs 사용법

picture 19

개요

docker로 구성된 logstash 컨테이너를 수정할 일이 있었습니다.

해당 컨테이너의 로그를 보려고 아래 명령어를 입력한 순간…

docker logs log01

쌓여있던 로그가 미친듯이 뿜어져나와 제가 보고 싶은 메세지를 보는데 한참이 걸렸죠.

이 문제를 해결하려면 어떻게 해야 할까요?

docker logs ?

docker logs는 컨테이너의 로그를 조회할 수 있는 명령어입니다.

아래와 같은 형태로 이뤄집니다.

docker logs [OPTIONS] CONTAINER

[OPTIONS]에 옵션을 부여해주면 저희가 보고싶은대로 log를 볼 수 있습니다.

실험 환경

docker run --name test -d busybox sh -c "while true; do $(echo date); sleep 1; done"

간단하게 log가 계속 찍히는 컨테이너를 생성했습니다.

컨테이너 이름은 test입니다.

이 컨테이너를 이용해 실습해보겠습니다.

사용 사례

마지막에 찍히는 10개의 로그만 보고 싶어 🤔

docker logs --tail 10 <CONTAINER>

--tail n 옵션을 사용하면 끝에서 n개의 로그만 출력합니다.

지금부터 생성되는 로그도 보고 싶어 🤔

docker logs -f <CONTAINER>

-f 옵션을 사용하면 로그를 출력하고 프로세스를 종료하는 것이 아니라 계속해서 로그를 추적합니다.

기존의 로그를 무시하고 새로 생성되는 로그만 보려면

docker logs -f --tail 0 <CONTAINER>

이전 n개의 로그를 출력하고 신규 로그를 추적하고 싶다면 --tail <n>으로 수정하면 됩니다.

특정 메세지가 들어간 로그만 보고 싶은데 🤔

docker logs test | grep :20

linux의 grep 기능을 활용하면 쉽습니다.

grep 이후에 검색하고자하는 text를 넣어주시면 됩니다.

참조

Docker logs 공식 문서

마치며

해당 포스트에 추가가 필요한 꿀팁이나 수정사항이 있으시면 언제든 피드백 주시면 감사하겠습니다. 😄


Written by@박대성

독서와 지식관리에 관심이 많은 개발자

GitHub