![[도커 #5] 마운트](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog-custom%3Ftitle%3D%255B%25EB%258F%2584%25EC%25BB%25A4%2B%25235%255D%2B%25EB%25A7%2588%25EC%259A%25B4%25ED%258A%25B8%26tag%3DTemplate%2B1%26description%3D%26template%3D3%26backgroundImage%3Dhttps%253A%252F%252Fsource.inblog.dev%252Fog_image%252Fdefault.png%26bgStartColor%3D%2523a8e8ec%26bgEndColor%3D%2523a8e8ec%26textColor%3D%2523000000%26tagColor%3D%2523000000%26descriptionColor%3D%2523000000%26logoUrl%3D%26blogTitle%3DGyeongwon%2527s%2Bblog&w=2048&q=75)
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