Docker 컨테이너 내부의 파일 시스템은 일시적(Ephemeral)입니다. 컨테이너가 삭제되면 내부 데이터도 함께 사라집니다. DB 데이터나 사용자가 업로드한 파일을 안전하게 유지(영속화)하기 위한 스토리지 세팅 방법을 알아봅니다.
Docker가 스토리지 관리를 온전히 책임지는 방식으로 가장 권장되는 영속화 기법입니다.
/var/lib/docker/volumes/)에 저장되며, 일반 프로세스나 사용자가 직접 수정하지 않도록 관리됩니다.-v 옵션보다 직관적인 --mount 플래그 사용이 권장됩니다.
# 볼륨 생성
docker volume create myvol2
# 컨테이너에 마운트 (기본)
docker run -d --name devtest \
--mount source=myvol2,target=/app \
nginx:latest
# 읽기 전용(Read-Only) 마운트 (보안 강화)
docker run -d --name devtest \
--mount source=myvol2,target=/app,readonly \
nginx:latest호스트(Host) 시스템의 절대 경로에 위치한 파일이나 디렉터리를 컨테이너 내부에 직접 연결하는 방식입니다.
--mount type=bind를 사용하여 경로를 명확히 지정하는 것이 좋습니다.
# 현재 디렉토리의 target 폴더를 컨테이너의 /app 경로로 매핑
docker run -d -it --name devtest \
--mount type=bind,source="$(pwd)"/target,target=/app \
nginx:latest고가용성 분산 환경이나 대규모 기업용 인프라에서는 각 호스트 머신 내부 디스크 대신 외부 통합 스토리지 장비(NAS, SAN)를 연결하여 사용합니다.
방법 1: 호스트 레벨 마운트 후 Bind Mount
/mnt/nfs_data)에 마운트합니다.docker run -v /mnt/nfs_data/shared:/app/shared my_app방법 2: Docker Volume Plugin 사용