📂 Docker 컨테이너와 로컬 파일 공유하는 법
Bind Mount를 활용한 로컬 파일 연동 완벽 가이드
✅ 왜 로컬 파일을 컨테이너와 공유해야 할까?
Docker는 컨테이너 내부에서 코드, 설정 파일, 환경 변수를 실행하지만, 때로는 개발 중인 로컬 코드나 데이터 파일을 컨테이너와 직접 공유해야 할 때가 있습니다.
예를 들어:
- 로컬 코드 수정 → 컨테이너에 실시간 반영
- 로컬 CSV 파일을 Python 컨테이너가 읽도록 설정
- 정적 HTML 파일을 nginx 컨테이너에서 서비스
이때 필요한 기능이 바로 로컬 파일 공유(Bind Mount) 입니다.

🔄 방법 1: Bind Mount로 공유하기
Bind Mount는 로컬 파일 시스템의 디렉토리(또는 파일)를 컨테이너 내부 경로에 연결하여 양방향 접근을 가능하게 해줍니다.
📌 기본 명령어
예시:
- -v ${PWD}/html:/usr/share/nginx/html
→ 로컬의 html 폴더를 nginx 컨테이너 내부의 웹 루트로 연결
브라우저에서 localhost:8080에 접속하면, 로컬 html 폴더 안에 있는 파일이 웹으로 서비스됩니다.
🔍 예제 1: HTML 파일을 nginx에서 서빙하기
📂 디렉토리 구조
index.html 예시
실행 명령어
→ localhost:8080 접속 시 index.html 내용 확인 가능
🔍 예제 2: Python 컨테이너에서 로컬 데이터 분석
로컬에 data.csv 파일이 있다고 가정합시다. 이 파일을 Python 컨테이너에서 읽어드릴 수 있습니다.
컨테이너 안에서:
⚠️ 유의사항
| 경로 | 반드시 절대 경로를 사용해야 함 |
| 권한 | 파일 권한 문제로 컨테이너에서 파일이 안 보일 수 있음 |
| 보안 | 바인드 마운트는 로컬 파일을 그대로 노출하므로 주의 |
| 운영환경 | 운영 서버에서는 bind mount 지양, 대신 volume 권장 |
📦 Bind Mount vs Volume 차이점
| 파일 출처 | 로컬 경로 직접 지정 | Docker가 생성 및 관리 |
| 보안성 | 낮음 (외부 접근 가능) | 높음 (컨테이너 전용) |
| 편의성 | 개발 중 실시간 연동 | 백업, 배포에 유리 |
| 권장 사용 | 개발 환경 | 운영 환경, 배포용 이미지 |
🧠 실무 팁
- 개발 중에는 Bind Mount 사용
- 코드 수정 시 바로 반영됨
- 운영 배포 시에는 Volume 사용
- 버전 관리 및 보안성 확보
- docker-compose.yml에서도 쉽게 설정 가능
✅ 결론
Docker에서 로컬 파일을 컨테이너와 공유하면 개발 속도가 눈에 띄게 빨라집니다.
특히 웹 개발, 데이터 분석, 설정 파일 변경 등 다양한 시나리오에서 Bind Mount는 매우 강력한 도구입니다.
다만, 운영 환경에서는 반드시 보안성과 유지관리 측면에서 Volume을 사용하는 것이 더 적절합니다.
Docker Verified Publisher API (DVP)
Docker Verified Publisher API (DVP)
🏷 Docker Verified Publisher API란?공식 인증 받은 퍼블리셔를 위한 Docker Hub API 완전 해설 ✅ Docker Verified Publisher(DVP)란?**Docker Verified Publisher(DVP)**는 Docker Hub 상에서 신뢰할 수 있는 기업이나 오픈소스
jjig810906.tistory.com
'Program' 카테고리의 다른 글
| Docker로 멀티 컨테이너 애플리케이션 구성하기 (0) | 2025.06.06 |
|---|---|
| Docker 이미지 빌드 빠르게 하는 방법 (10분 걸리던게 1분에 완료!) (0) | 2025.06.05 |
| Docker Verified Publisher API (DVP) (0) | 2025.06.05 |
| Docker 컨테이너 데이터 Volume / Bind Mounts (0) | 2025.06.05 |
| Docker Hub에서 더 이상 사용되지 않는 API 목록 정리 (1) | 2025.06.05 |