도커 볼륨, 이걸 모르면 데이터 날아간다! 도커 초보 가이드

도서관 이미지
“기억하지 못하는 자는 과거를 반복하게 된다.” – 조지 산타야나

"도커 좋다해서 썼는데... 내 데이터가 싹 사라졌어요ㅠㅠ"

어제 밤새 만든 파일이, 컨테이너 docker rm 한 방에 증발하던 그날의 눈물…
그래서 알게 된 게 있죠. 도커 볼륨, 이 친구 없으면 큰일 난다는 걸요.

📦 데이터 보관소, 도커 볼륨이 뭐예요?

컨테이너는 아주 가볍고 빠르지만, 모르면 치명적인 사실이 하나 있어요.
휘발성! 네, 컨테이너를 제거하면, 기억상실증처럼 컨테이너 안의 모든 것도 깔끔하게 사라져버립니다.

그럼 데이터는 어디에 보관할까요?
바로! 도커 볼륨(Docker Volume) 이라는 멋진 창고가 있답니다.

"에이~ 그냥 USB 꽂듯 연결하면 되는 거 아냐?"
맞아요, 어느 정도는요. 그런데 이게 생각보다 꽤 스마트하게 작동해요.


🔍 도커 볼륨, 왜 써야 할까요?

현실에서 데이터를 매번 날려버릴 순 없잖아요?

  • 우리가 운영하는 데이터베이스는?
  • 로그 파일이나 업로드된 이미지는?
  • 서버의 설정 파일은?

이런 것들은 컨테이너가 죽어도 살아남아야 해요.
그래서 도커는 외부 저장소인 볼륨이라는 구조를 제공해요.

쉽게 말해, 도커 컨테이너용 외장하드 같은 거죠.
컨테이너를 껐다 켜도, 포맷하지 않는 이상 데이터는 안전하게 보관됩니다. 든든하죠?


🧰 볼륨의 3가지 스타일

도커 볼륨도 성격이 다양해요. 마치 3종 세트처럼!

종류 특징 비유
Volume 도커가 직접 관리 도커 전용 창고
Bind Mount 내 PC 폴더랑 직접 연결 공유 드라이브
tmpfs 메모리에만 저장, 휘발성 휘발성 메모장

Volume은 도커가 알아서 챙겨주는 자동화 창고,
Bind Mount는 내가 지정한 폴더를 강제로 연결!
tmpfs는 재부팅하면 휘익~ 사라지는 임시 저장소예요.


🪢 어떻게 연결할까?

docker run -v /내폴더:/컨테이너폴더 my-image

이렇게 쓰면,
내 컴퓨터의 폴더컨테이너 안의 폴더
마치 하나처럼 연결돼요.

내 PC의 /내폴더에 저장하면,
그 내용이 컨테이너 안에서 /컨테이너폴더에도 그대로 생깁니다! 오오~
그래서 격리된 컨테이너와 자료를 공유하는 아주 편리한 통로로 활용할 수 있어요.
컨테이너는 /컨테이너폴더에 연결된 /내폴더를 컨테이너 내부의 폴더로 인식하고 작업하기 때문이에요.


🧑‍🔧 도커 컴포즈로 쉽게 볼륨 관리하기

여러 개의 컨테이너를 띄울 땐 docker-compose.yml 파일이 최고예요.

services:
  app:
    image: ubuntu
    volumes:
      - ./my-data:/app/data

요렇게 하면 내 폴더 ./my-data가 컨테이너 안의 /app/data에 연결돼요.

또는, 여러 서비스가 같은 저장소를 공유할 수도 있어요!

services:
  web:
    image: nginx
    volumes:
      - shared-data:/app/data

  worker:
    image: ubuntu
    volumes:
      - shared-data:/app/data

volumes:
  shared-data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: ./shared-folder

하나의 작업 결과를 다른 컨테이너가 바로 읽을 수 있는 진정한 협업이죠!


🧼 깔끔한 볼륨 관리도 필요해요

docker volume ls               # 볼륨 목록
docker volume inspect my-vol  # 볼륨 정보 확인
docker volume rm my-vol       # 삭제
docker volume prune           # 안 쓰는 거 싹 정리

한 번씩은 청소도 해줘야겠죠?
안 그러면 어디서 왔는지도 모르는 볼륨들이 쌓여만 갑니다...😅


🧠 마무리 한 스푼

  • 도커 볼륨은 데이터 보관의 생명줄!
  • 휘발성 컨테이너를 든든하게 뒷받침해주는 도커의 핵심 기능이에요.
  • 바인드 마운트냐, 볼륨이냐는 상황에 따라 골라쓰면 돼요.
  • 도커 컴포즈로 관리하면 더욱 스마트하게 운영할 수 있고요!

이제 여러분도 도커 볼륨, 낯설지 않죠?
이제 도커 쓸 때마다, "데이터는 볼륨에~" 이 주문 외우셔야 해요! 😉