도커가 데이터를 다루는 방법은 볼륨 말고도 두 가지가 더 있어요. 그리고 이들을 다루는 '신문법'인 --mount까지! 하나씩 뽀개봅시다! 👊💥
1️⃣ 바인드 마운트 (Bind Mount): "내 컴퓨터 폴더를 그대로 연결해!" 🔗📂
- 개념: 도커가 관리하는 영역(볼륨)이 아니라, 내 컴퓨터(Host)의 특정 파일이나 폴더를 컨테이너 안으로 직접 연결하는 방식이에요.
- 특징:
- 내 컴퓨터에서 파일을 수정하면 컨테이너에도 실시간으로 반영돼요. ⚡️
- 반대로 컨테이너가 파일을 지우면 내 컴퓨터 파일도 지워져요! (양방향 동기화) ⚠️
- 언제 쓰나요?: 개발할 때 최고! 👍 소스 코드를 내 컴퓨터에서 편집하고, 컨테이너 재시작 없이 바로 웹사이트에 반영하고 싶을 때 씁니다.
Bash
# @title 바인드 마운트 예시 (-v 사용 시)
# 내 컴퓨터의 현재 폴더($(pwd))를 컨테이너의 /app에 연결!
docker run -v $(pwd):/app -d python:3.9
2️⃣ tmpfs 마운트: "하드디스크 말고 램(RAM)에 저장해!" ⚡️🧠
- 개념: 데이터를 하드디스크(SSD/HDD)가 아니라 **시스템 메모리(RAM)**에만 잠깐 저장하는 방식이에요.
- 특징:
- 속도가 엄청 빠름! (메모리니까요!) 🚀
- 휘발성: 컨테이너가 멈추면 데이터는 즉시 증발합니다. ☁️
- 보안상 디스크에 기록을 남기면 안 될 때 유용해요.
- 언제 쓰나요?: 민감한 비밀번호 파일, 엄청난 속도가 필요한 임시 캐시 데이터 처리 등. 🔐
3️⃣ --mount 플래그: "더 명확하고 자세한 신문법" 📜✅
- 개념: 기존에 쓰던 -v(또는 --volume) 옵션은 짧아서 좋지만, 기능이 복잡해지면 읽기가 어려웠어요. 그래서 도커가 만든 **"공식 추천 문법"**입니다.
- 특징:
- type=..., source=..., target=... 처럼 **키-값 쌍(Key-Value)**으로 적어서 아주 명확해요. 🧐
- 서비스(Swarm) 모드에서는 이 플래그만 사용할 수 있어요.
- 사용 예시:
Bash
# @title --mount 플래그 사용 예시 (권장 👍)
# type을 bind로 명시해서 헷갈릴 일이 없어요!
docker run -d \
--mount type=bind,source=$(pwd),target=/app \
nginx:latest
📊 한눈에 보는 비교 (VS) 🥊
| 방식 | 저장 위치 📍 | 데이터 수명 ⏳ | 속도 🏎️ | 주 용도 🎯 |
| 볼륨 (Volume) | 도커 전용 공간 (/var/lib/docker/...) | 영구적 (삭제 전까지) | 빠름 | DB 저장, 데이터 보존 (운영 환경) |
| 바인드 마운트 | 내 컴퓨터의 아무 폴더 (Host File System) | 영구적 (Host 파일임) | 보통 | 코드 수정 및 개발 (개발 환경) |
| tmpfs 마운트 | 시스템 메모리 (RAM) | 일시적 (컨테이너 꺼지면 삭제) | 초고속 | 보안 데이터, 임시 캐시 |
💡 쉽고 정확한 비유: "집 인테리어 공사" 🏠🔨
여러분의 방(컨테이너)을 꾸미는데 가구(데이터)를 어디서 가져오는지 생각해 볼까요?
- 볼륨 (Volume) 👉 "붙박이장" 🚪
- : 집주인(Docker)이 관리하는 튼튼한 창고예요. 내가 이사를 가도(컨테이너 삭제), 붙박이장 안의 짐은 안전하게 보관해 줘요.
- 바인드 마운트 (Bind Mount) 👉 "창문" 🪟
- : 바깥세상(내 컴퓨터)과 뚫려있는 창문이에요. 바깥에서 짜장면(소스 코드)을 쑥 넣어주면, 방 안에서 바로 먹을 수 있죠! 창문 밖 풍경이 바뀌면 방 안에서도 바로 보여요.
- tmpfs 마운트 👉 "화이트보드" 🖍️
- : 방 안에 있는 화이트보드예요. 메모를 엄청 빨리 쓰고 지울 수 있지만, 방 불을 끄고 나가는 순간(컨테이너 종료) 내용은 싹 지워져요.
- --mount 플래그 👉 "정식 계약서" 📑
- : -v가 "창문 뚫어줘!"라고 대충 말하는 구두 계약이라면, --mount는 "유형: 창문, 위치: 남쪽, 크기: 1미터..." 이렇게 꼼꼼하게 적은 정식 계약서예요. 실수가 적겠죠?
'AI 엔지니어준비' 카테고리의 다른 글
| 🔱 Streamlit + FastAPI + Triton: 고성능 AI 서빙 아키텍처 설계 🏛️🚀 (0) | 2026.01.20 |
|---|---|
| 🕸️ Docker Network: 컨테이너들의 소통 창구! 🗣️ (1) | 2026.01.20 |
| 🐳 도커 이미지 vs 도커 볼륨: 무엇이 다를까? 🤔 (0) | 2026.01.20 |
| JD(채용공고) 분석 (0) | 2026.01.18 |
| AI 채용 직무 준비 (리서치, 데이터, 에이전트) (0) | 2026.01.18 |