본문 바로가기

Program

Docker 컨테이너와 로컬 파일 공유하는 법

반응형

📂 Docker 컨테이너와 로컬 파일 공유하는 법

Bind Mount를 활용한 로컬 파일 연동 완벽 가이드


✅ 왜 로컬 파일을 컨테이너와 공유해야 할까?

Docker는 컨테이너 내부에서 코드, 설정 파일, 환경 변수를 실행하지만, 때로는 개발 중인 로컬 코드데이터 파일을 컨테이너와 직접 공유해야 할 때가 있습니다.

예를 들어:

  • 로컬 코드 수정 → 컨테이너에 실시간 반영
  • 로컬 CSV 파일을 Python 컨테이너가 읽도록 설정
  • 정적 HTML 파일을 nginx 컨테이너에서 서비스

이때 필요한 기능이 바로 로컬 파일 공유(Bind Mount) 입니다.


 

🔄 방법 1: Bind Mount로 공유하기

Bind Mount는 로컬 파일 시스템의 디렉토리(또는 파일)를 컨테이너 내부 경로에 연결하여 양방향 접근을 가능하게 해줍니다.

📌 기본 명령어

bash
복사편집
docker run -v /로컬/경로:/컨테이너/경로 이미지이름

예시:

bash
복사편집
docker run -d -p 8080:80 \ -v ${PWD}/html:/usr/share/nginx/html \ nginx
  • -v ${PWD}/html:/usr/share/nginx/html
    → 로컬의 html 폴더를 nginx 컨테이너 내부의 웹 루트로 연결

브라우저에서 localhost:8080에 접속하면, 로컬 html 폴더 안에 있는 파일이 웹으로 서비스됩니다.


🔍 예제 1: HTML 파일을 nginx에서 서빙하기

📂 디렉토리 구조

bash
복사편집
/my-site └── index.html

index.html 예시

html
복사편집
<h1>Hello from my local file!</h1>

실행 명령어

bash
복사편집
docker run -d -p 8080:80 \ -v ${PWD}:/usr/share/nginx/html \ nginx

→ localhost:8080 접속 시 index.html 내용 확인 가능


🔍 예제 2: Python 컨테이너에서 로컬 데이터 분석

로컬에 data.csv 파일이 있다고 가정합시다. 이 파일을 Python 컨테이너에서 읽어드릴 수 있습니다.

bash
복사편집
docker run -it \ -v ${PWD}/data.csv:/app/data.csv \ python:3.10-slim bash

컨테이너 안에서:

bash
복사편집
import pandas as pd df = pd.read_csv('/app/data.csv') print(df.head())

⚠️ 유의사항

항목내용
경로 반드시 절대 경로를 사용해야 함
권한 파일 권한 문제로 컨테이너에서 파일이 안 보일 수 있음
보안 바인드 마운트는 로컬 파일을 그대로 노출하므로 주의
운영환경 운영 서버에서는 bind mount 지양, 대신 volume 권장
 

📦 Bind Mount vs Volume 차이점

항목Bind MountVolume
파일 출처 로컬 경로 직접 지정 Docker가 생성 및 관리
보안성 낮음 (외부 접근 가능) 높음 (컨테이너 전용)
편의성 개발 중 실시간 연동 백업, 배포에 유리
권장 사용 개발 환경 운영 환경, 배포용 이미지
 

반응형

 

🧠 실무 팁

  1. 개발 중에는 Bind Mount 사용
    • 코드 수정 시 바로 반영됨
  2. 운영 배포 시에는 Volume 사용
    • 버전 관리 및 보안성 확보
  3. docker-compose.yml에서도 쉽게 설정 가능
yaml
복사편집
volumes: - ./html:/usr/share/nginx/html

✅ 결론

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

 

반응형