Docker
Docker 컨테이너 로그 다루기
Docker 작업에서 로그를 어떻게 확인하고 해석하는지가 문제 해결 속도를 좌우한다.
Docker 문제를 해결할 때 검색해서 들어온 상황이라면 바로 재현 조건부터 잡는 편이 빠르다.
핵심은 한 가지에만 붙잡지 말고 전체 컨테이너 흐름에서 원인을 찾아내는 것이다. 재현 조건, 로그, 응답을 먼저 수집해야 한다.
검색해서 온 상황
화면만 봐서는 놓치는 게 많다. 로그, 응답, 설정 중 하나를 증거로 잡아야 한다.
첫 번째 단서
컨테이너 작업은 로컬과 운영의 차이가 자주 숨어 있다. 환경 차이까지 같이 적어두면 원인 추적이 쉬워진다:
- 먼저 볼 값: 로그
- 같이 비교할 값: 정상일 때의 컨테이너 상태
- 남겨둘 기록: 명령 출력, 응답 코드, 수정한 설정
환경변수와 두 번째 단서
바로 수정하기 전에 컨테이너 상태부터 확인하면 불필요한 변경을 줄일 수 있다. 작은 확인이 쌓이면 원인 후보가 자연스럽게 줄어든다.
docker ps
docker logs --tail=100 service-name
docker inspect service-name
직접 확인하는 명령어
중요한 건 Docker 자체보다 재현 가능한 단서를 남기는 것이다. 이미지 태그를 확인하면 다음으로 볼 범위가 확 줄어든다.
포트 매핑과 수정 후 확인
바로 수정하기 전에 환경변수부터 확인하면 불필요한 변경을 줄일 수 있다. 작은 확인이 쌓이면 원인 후보가 자연스럽게 줄어든다.
검증 항목
- 원래 증상이 같은 조건에서 다시 나는지 확인한다.
- 로그나 응답에서 바뀐 부분을 한 줄로 설명해본다.
- 공개 화면, 빌드 결과, 실제 요청 중 하나로 마지막 확인을 한다.
재발 방지
컨테이너의 흐름을 먼저 끊어서 봐야 한다. 볼륨 마운트가 애매하면 다른 부분을 고쳐도 결과가 바뀌지 않을 수 있다. 한 번에 여러 설정을 바꾸지 않는 것만으로도 원인 추적이 쉬워진다.