[도커 #5] 마운트

도커에서 컨테이너에 파일을 넣는 대표적인 방식 중 하나입니다.
도경원's avatar
Jul 30, 2025
[도커 #5] 마운트

1. 도커에서 컨테이너에 파일을 넣는 대표적인 방식

방법
시점
목적
반영 즉시성
비고
1. COPY
이미지 생성 시
이미지에 정적 파일 포함
정적인 배포용
2. ADD
이미지 생성 시
COPY + 압축해제 기능
거의 안 씀
3. Bind Mount
컨테이너 실행 시
실시간 동기화/수정 가능
개발용
4. Volume
컨테이너 실행 시
지속적 데이터 저장
운영용
5. Symbolic Link (ln -s)
컨테이너 내부
경로 연결
내부 전용
외부와는 무관

2. 도커 마운트(Mount)란 ?

호스트의 디렉토리나 파일을 컨테이너 내부로 연결(Mount)해서 사용하는 것.
컨테이너는 원래 휘발성이기 때문에, 컨테이너가 삭제되면 내부 데이터도 날아간다. 따라서 Mount를 사용하면 외부에 데이터를 저장하거나, 외부 데이터를 컨테이너 안에서 사용할 수 있다.
복사가 아니고, 폴더를 통으로 박아버리는 느낌이다.

3. 마운트의 종류 및 비교

  • bind mount : 호스트의 특정 경로를 컨테이너에 연결 (로우레벨, 유연함)
  • volume : 도커가 관리하는 특수한 경로를 마운트 (관리 용이, 백업 쉬움)
  • tmpfs mount : 휘발성 메모리 마운트 (재부팅시 사라짐)
항목
Bind Mount
Volume
tmpfs Mount
저장 위치
호스트의 임의 디렉토리
/var/lib/docker/volumes/...
메모리 내
도커가 관리?
❌ 수동으로 관리
✅ 도커가 자동으로 관리
❌ 운영체제에서 관리
퍼포먼스
일반적
빠름
매우 빠름 (메모리이므로)
보안
낮음 (호스트 접근 가능)
높음
높음
실전 사용 여부
개발환경에서 자주 사용
운영환경에서 자주 사용
특수한 경우 사용

4. 사용 예시

(1) Bind Mount

docker run -v /Users/doythan/mydata:/app/data myimage docker run -d -p 8000:80 -v c:\workspace\docker-lab\ex01:/usr/local/apache2/htdocs httpd docker run -d -p 8000:80 -v c:\workspace\docker-lab\ex01:/usr/share/nginx/html ngginx
  • 로컬의 /Users/doythan/mydata를 컨테이너의 /app/data에 마운트
  • 실시간으로 파일 동기화됨 → 개발 시 코드 반영에 유리
  • ❗터미널에 따라 슬래쉬, 역슬래쉬 주의
마운트는 한번 띄우면 정적파일이라 새로고침 안되는 경우가 있다.
F12를 누르고 마우스 우클릭 후 캐시 비우기 및 강력 새로고침 진행하면 된다.

(2) Volume

docker volume create myvolume docker run -v myvolume:/app/data myimage
  • 도커가 지정한 안전한 위치에 데이터 저장
  • 컨테이너 삭제해도 볼륨은 남음 → 운영환경에 적합

(3) tmpfs mount

docker run --tmpfs /app/cache:rw,size=64m myimage
  • 컨테이너 안의 /app/cache 디렉토리를 메모리에만 저장
  • 휘발성 캐시 저장 등 용도에 적합
 
 
 
 
 
 
Share article

Gyeongwon's blog