최근에 모니터링에 대한 강의를 들으면서, 도커라는 인프라를 사용해보게 되었다.
기존에 실습했던 자료들을 기반으로 내 프로젝트에도 도커를 사용해보기로 했고, docker compoes up -d 명령어를 통해 모든 컨테이너를 시작해보았다.
그런데 다음 사진처럼 계속 내 스프링 애플리케이션만 컨테이너가 자꾸 죽었다.

첨에는 도커 오류인줄 알고 compose -down -v 명령어를 통해 모든 컨테이너를 지우고 다시 시작하길 한 10241번 정도 반복한 것 같다.
웃긴건 심지어 이상황에서 bootrun을 통해 IDE로 서버를 띄우면 DB가 정상 작동한다는 점이었다.
하지만 혹시나 하는 마음에 해당 컨테이너의 대시보드에 들어가서 로그를 보았는데,
Access denied for user ‘xuv’@’localhost’ (using password:YES)
이런 로그가 계속해서 찍히고 있었다. 도커 설정 yml 파일과 application.yml 파일을 약 4시간 가량을 수정하며 원인을 찾았지만 결국 찾지 못하고 포기하려고 했다.
그래서 조금 쉬면서 도커에 대해 찾아봤는데 도커에는 컨테이너의 데이터를 보관하는 Volume이라는 개념이 존재한다는 것을 알게 되었다.
생각해보니, 이전 강의의 실습을 통해 진행했던 MySQL 컨테이너의 데이터가 volume에 유지되어서 이러는게 아닐까? 라는 생각에
다음 명령어로 그냥 모든 볼륨을 밀어버리고, 새롭게 컨테이너를 생성하여 초기화 했다.
docker-compose down -v // 모든 docker container의 volume을 삭제
docker-compose up --build // docker contanier가 새로 생성되어 초기화
한번 밀고 새롭게 컨테이너를 띄웠더니 다음과 같이 이제 정상작동하는걸 볼 수 있다.

앞으로 도커 설정을 하다 뭔가 꼬이면 그냥 볼륨 자체를 날려버리고 새롭게 초기화하여 정신건강을 이롭게 하자..
'Error' 카테고리의 다른 글
| (배포 후기 2) 우리 잘못이 아니야 (1) | 2025.11.10 |
|---|---|
| (배포 후기 1) 배포 자동화는 어려워 (0) | 2025.11.07 |
| [Spring] 애플리케이션 실행시 data.sql / schema.sql 이 실행되지 않을 때 (0) | 2025.10.16 |
| Mac에서 Notion 한글 씹힐 때 (0) | 2025.10.07 |
| [MyBatis] 의존성 - 에러가 발생하면 공식문서를 봅시다 (0) | 2025.08.06 |