Docker

컨테이너 로그 조회하기

KimMinJun 2025. 7. 31. 11:10

개요

로그(log)는 굉장히 중요한 정보이다.

흔히 디버깅 할 때, 디버깅 툴도 많이 이용하지만,

간단히 디버깅 하기 위해서는 `console.log()` 같은 명령어도 많이 이용했다.

지금 이 글을 작성하기 전까지

왜 `console.print()`가 아닌 `console.log()`일까라는 생각을 못해봤다.

정말 단순히 콘솔에 '로그'를 남긴다는 의미이다.

 

'로그', 즉 '기록'을 남기면서

그 기록으로 어디가 잘못되었는지 디버깅을 하는것이다.

 

컨테이너도 마찬가지로,

이 컨테이너가 잘 실행되고 있는지,

혹은 에러가 났는지 알기위해서 로그를 읽어보는 것이 중요하다.

 

그런데, 우리는 사실 이미 로그를 봤다.

`docker run -d nginx` 명령어는 background에서 실행하는 명령어였다.

 

그런데, `-d` 없이 foreground에서 실행하면,

실시간 로그들을 볼 수 있었다.

 

컨테이너 로그 조회하기

하지만, 위 방법으로 실행할 경우에는 터미널에서 다른 명령어를 입력할 수 없다는 단점이 있었다.

만약 background로 실행중인 컨테이너의 로그를 보고 싶다면 어떻게 할까?

다음 명령어로 조회할 수 있다.

docker logs [CONTAINER ID]

 

 

하지만 로그가 쌓이다보면, 최신 로그들만 보고 싶을 수 있다.

그럴 때는 `--tail` 옵션으로 개수 제한을 할 수 있다.

docker logs --tail [개수] [CONTAINER ID]

`--tail 10`은 마지막 10개의 로그만 보겠다는 의미이다.

 

 

그리고 이번엔 기존에 foreground에서 실행했던 것 처럼

실시간으로 로그를 보고 싶을 경우가 있다.

그럴 때는 다음 명령어를 입력하면 된다.

docker logs -f [CONTAINER ID]

 

 

그런데, 실시간으로 계속 쌓였던 로그를 전부 보는것이 아니라

지금부터 생성되는 로그를 보고 싶을 수 있다.

그럴 때는 다음과 같이 위의 두 명령어를 조합해서 볼 수 있다.

docker logs --tail 0 -f [CONTAINER ID]