← 전체 글로 돌아가기

Docker

Docker 컨테이너 재시작 후 문제가 생길 때 확인할 것

Docker 컨테이너 작업에서 예상치 못한 문제를 빨리 파악하는 확인 순서를 정리했습니다.

컨테이너를 재시작한 후 서비스가 안 뜬다면 보통 환경변수, 포트 매핑, 이미지 버전 중 하나다. 증상을 크게 잡으면 오히려 손댈 곳이 너무 많아진다.

컨테이너 상태 확인

가장 먼저 컨테이너가 정말로 실행 중인지 확인한다.

docker ps
docker ps -a

Up 상태인지, Exited 상태인지에 따라 다음 확인 방향이 달라진다. Exited라면 로그를 봐야 하고, Up이면 네트워크나 포트를 확인해야 한다.

로그와 환경변수

docker logs --tail=100 service-name
docker logs -f service-name  # 실시간 로그

로그에서 에러 메시지를 찾으면 원인이 명확해진다. 권한 오류, 포트 바인드 실패, 환경변수 누락 같은 구체적인 메시지가 나온다.

환경변수가 제대로 전달되었는지 확인하려면:

docker inspect service-name | grep Env

포트 매핑과 네트워크

docker port service-name
netstat -lntp | grep LISTEN

컨테이너가 특정 포트에 바인드되어 있는지, 호스트 포트 매핑이 제대로 설정되었는지 확인한다. 특히 localhost에서만 리스닝하고 있다면 외부에서는 접근할 수 없다.

이미지 버전과 확인 루틴

docker images | grep service-name
docker inspect service-name:latest | grep -i version

재시작 후 다른 이미지 태그가 로드되었을 수도 있다. 최신 이미지를 다시 당겨오고 재시작해 봐야 할 수도 있다.

수정 후 확인

  1. 컨테이너의 현재 상태를 기록한다 (ps, logs, inspect)
  2. 하나만 수정하고 재시작한다
  3. 로그에서 구체적으로 뭐가 달라졌는지 비교한다
  4. 모두 정상이면 추가 확인은 멈춘다

다음에 같은 서비스에서 문제가 생기면 이번 기록을 보고 빠르게 판단할 수 있다.