/엔지니어/Docker / 컨테이너/Docker 볼륨 vs 바인드마운트 — 데이터 영속
Docker / 컨테이너중급UbuntuDebianCentOSdockervolumebind-mount

Docker 볼륨 vs 바인드마운트 — 데이터 영속성 완전 가이드

볼륨과 바인드마운트의 차이점, 백업·복원, 권한 문제 해결까지 Docker 데이터 영속성 패턴을 정리합니다.

볼륨 vs 바인드마운트

항목볼륨바인드마운트
위치Docker 관리 (/var/lib/docker/volumes)호스트 지정 경로
이식성높음낮음 (경로 의존)
권한 관리Docker가 처리호스트 권한 그대로
백업docker volume 명령호스트 파일 시스템
개발 환경부적합적합 (파일 변경 즉시 반영)
운영 환경적합조건부 적합

볼륨 관리

Bash
# 볼륨 생성
docker volume create mydata

# 볼륨 목록
docker volume ls

# 볼륨 상세 정보
docker volume inspect mydata

# 볼륨 마운트
docker run -d \
  -v mydata:/var/lib/postgresql/data \
  --name postgres \
  postgres:16

# 사용 안 하는 볼륨 정리
docker volume prune

바인드마운트

Bash
# 기본 바인드마운트
docker run -d \
  -v /host/path:/container/path \
  nginx

# 읽기 전용 마운트
docker run -d \
  -v /etc/nginx/conf.d:/etc/nginx/conf.d:ro \
  nginx

# 현재 디렉터리 마운트 (개발용)
docker run -it \
  -v $(pwd):/app \
  -w /app \
  node:20 bash

tmpfs 마운트 (메모리, 민감 데이터)

Bash
docker run -d \
  --tmpfs /run:rw,noexec,nosuid,size=64m \
  --tmpfs /tmp \
  nginx

볼륨 백업·복원

Bash
# 백업 — 볼륨을 tar로 추출
docker run --rm \
  -v mydata:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/mydata-$(date +%Y%m%d).tar.gz -C /data .

# 복원
docker run --rm \
  -v mydata:/data \
  -v $(pwd):/backup \
  alpine tar xzf /backup/mydata-20250101.tar.gz -C /data

# 볼륨 간 복사
docker run --rm \
  -v source_vol:/from \
  -v dest_vol:/to \
  alpine cp -a /from/. /to/

권한 문제 해결

Bash
# 컨테이너 내부 UID 확인
docker run --rm nginx id

# 호스트 UID와 맞추기
docker run -d \
  --user 1000:1000 \
  -v $(pwd)/data:/app/data \
  myapp

# Dockerfile에서 권한 설정
# RUN chown -R node:node /app
# USER node

Docker Compose에서 볼륨

YAML
version: '3.8'
services:
  db:
    image: postgres:16
    volumes:
      - pgdata:/var/lib/postgresql/data   # named volume
      - ./init.sql:/docker-entrypoint-initdb.d/init.sql:ro  # bind mount

  app:
    image: myapp
    volumes:
      - ./src:/app/src   # 개발용 바인드마운트

volumes:
  pgdata:               # 볼륨 선언
    driver: local
#docker#volume#bind-mount#데이터영속성#백업
편집 안내 · Editorial Note

이 가이드는 AI 도구를 활용해 초안을 구성하고 사람이 명령어·문맥을 검토해 발행했습니다. 운영체제와 도구 버전에 따라 결과가 달라질 수 있으므로 적용 전 공식 문서를 함께 확인하세요. 오류를 발견하시면 이메일로 제보해 주세요.

관련 공식 문서Docker 공식 문서

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.