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

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

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

목차
  1. 볼륨 vs 바인드마운트
  2. 볼륨 관리
  3. 바인드마운트
  4. tmpfs 마운트 (메모리, 민감 데이터)
  5. 볼륨 백업·복원
  6. 권한 문제 해결
  7. Docker Compose에서 볼륨

볼륨 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 공식 문서 ↗pgvector 공식 저장소 ↗

질문 & 답변 (Q&A)

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