Docker
docker-compose 배포 후 데이터가 사라졌을 때 디버깅하기
Docker 컨테이너에서 데이터가 사라지는 문제는 대부분 볼륨 마운트나 이미지 태그 때문이다.
docker-compose로 배포한 후 갑자기 데이터가 사라졌다는 말을 들으면 당황한다. 코드는 문제없는데, 데이터베이스나 저장된 파일이 없어진 거다.
이런 상황이 되면 원인을 찾기 전에 확인할 것들이 있다. 로그, 설정, 환경 변수 등을 하나하나 체계적으로 보면서 뭐가 문제인지 좁혀가야 한다.
왜 헷갈리는가?
Docker 컨테이너는 기본적으로 상태를 저장하지 않는다. 따라서 컨테이너가 삭제되거나 재시작되면 내부의 모든 데이터가 사라진다. 이를 방지하려면 볼륨을 사용해야 한다.
만약 데이터가 사라졌다면, 아마도 볼륨 마운트가 제대로 설정되지 않은 것일 가능성이 높다.
재현 조건 파악하기
데이터가 사라지는 현상을 재현할 수 있는가? 특정 조건에서만 그런가? 이를 명확히 해야 한다:
- 볼륨 마운트 설정
- 컨테이너 상태
- 이미지 태그 버전
환경변수와 체크 포인트
로컬과 운영의 설정이 다를 수 있다. 특히 docker-compose.yml의 환경변수가 서로 다르면 문제가 난다:
docker ps
docker logs --tail=100 service-name
docker inspect service-name
이 명령들로 현재 상태를 확인할 수 있다.
실행 예시 확인하기
docker-compose가 제대로 실행되고 있는지 확인해보자. 컨테이너가 정상인지, 로그는 어떤지 봐야 한다.
포트 매핑도 확인해야 한다
데이터가 사라진 것 같은데, 실은 포트 매핑이 잘못되어서 다른 컨테이너에 접근한 건 아닌가? 이것도 확인해야 한다.
체계적 접근
- 원래 동작이 다시 나는가 확인한다.
- 로그에서 뭐가 달라졌는지 정리한다.
- 빌드 결과와 실제 상태를 비교한다.
Docker 문제는 한 번 정리해두면 다음에는 훨씬 쉽게 처리할 수 있다. 로그와 설정을 잘 기록해두자.