도커 볼륨을 통째로 날렸다 — AI는 경고했고, 지운 건 나였다

Docker.raw를 지워 로컬 postgres가 전멸한 뒤, 복구 대신 공용 인프라를 새로 세운 기록

하려던 것

어제 맥미니에서 도커가 아예 안 떴다. 데몬이 응답을 안 하고 재시작해도 그대로였다. 프로젝트 세 개의 dev 환경이 전부 도커 위에 있어서 아무것도 못 하는 상태가 됐다.

디스크를 보니 Docker.raw가 비대해져 있었다. 도커 데스크톱이 쓰는 가상 디스크 이미지 파일이다.

어떻게 시켰나

AI에게 물었다. 이걸 지우면 볼륨도 같이 지워지느냐고.

답은 “지워진다”였다. 명확한 답이었다. 그리고 나는 지웠다.

지금 와서 로그를 다시 봐도 AI가 틀린 말을 한 건 없다. Docker.raw는 볼륨을 포함한 전체 파일시스템이고, 지우면 그 안의 모든 게 사라진다. 나는 그 답을 듣고도 “응, 삭제해”라고 승인했다. 도커를 살리는 게 급했고, 로컬 DB의 데이터는 어차피 개발용이니 괜찮을 거라고 생각했다.

어디서 막혔나

로컬 postgres가 전멸했다.

“어차피 개발용”이라는 판단이 틀린 지점은 이거였다. 개발용 데이터가 없어도 되는 게 아니라, 다시 만드는 데 시간이 든다. 백필해둔 공시 데이터, 손으로 넣어둔 테스트 계정, 스키마 마이그레이션이 쌓인 상태 — 이게 프로젝트 세 개 분량이었다.

더 나쁜 건 왜 그렇게 커졌는지 모른 채로 지웠다는 것이다. 원인을 안 보고 증상을 지웠으니 같은 일이 또 날 수 있다.

어떻게 풀었나

복구는 포기했다. 대신 구조를 바꿨다.

“이제 도커 띄워줘 다시”

그리고 이번엔 프로젝트마다 각자 postgres를 띄우던 걸 그만뒀다. 공용 로컬 인프라를 따로 하나 만들고, postgres 하나를 세 프로젝트가 스키마로 나눠 쓰게 했다.

이게 왜 나은가.

이 사고가 없었으면 아마 계속 프로젝트마다 DB를 띄우고 있었을 거다.

배운 점