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
재시작 후 다른 이미지 태그가 로드되었을 수도 있다. 최신 이미지를 다시 당겨오고 재시작해 봐야 할 수도 있다.
수정 후 확인
- 컨테이너의 현재 상태를 기록한다 (ps, logs, inspect)
- 하나만 수정하고 재시작한다
- 로그에서 구체적으로 뭐가 달라졌는지 비교한다
- 모두 정상이면 추가 확인은 멈춘다
다음에 같은 서비스에서 문제가 생기면 이번 기록을 보고 빠르게 판단할 수 있다.