본문 바로가기
컴퓨터과학과

컨테이너와 호스트 간 파일 공유

by 공부하는노년 2025. 9. 1.
반응형

 

1. 컨테이너와 호스트 간 파일 공유 방법

(1) docker cp 명령어

  • 이미 실행 중이거나 종료된 컨테이너에서 한 번만 복사할 때 사용합니다.
  • 컨테이너 → 호스트:예:
  • docker cp myu:/home/ubuntu/test.txt /home/easyfly/
  • docker cp <컨테이너이름>:<컨테이너경로> <호스트경로>
  • 호스트 → 컨테이너:예:
  • docker cp /home/easyfly/hello.txt myu:/home/ubuntu/
  • docker cp <호스트경로> <컨테이너이름>:<컨테이너경로>

(2) 볼륨 마운트 (-v)

  • 컨테이너 실행 시점에 호스트 디렉터리와 컨테이너 디렉터리를 연결합니다.
  • 컨테이너 종료 후에도 파일이 호스트에 남습니다.
  • 실행 예시:
    • /home/easyfly/shared → 호스트 디렉터리
    • /home/ubuntu/shared → 컨테이너 내부 디렉터리
    컨테이너 안에서 /home/ubuntu/shared에 파일을 만들면, 호스트의 /home/easyfly/shared에도 그대로 생깁니다.
  • docker run -it --name myu -v /home/easyfly/shared:/home/ubuntu/shared my-ubuntu:0.1 /bin/bash

(3) Docker Volume

  • 특정 호스트 경로가 아니라, Docker가 관리하는 전용 스토리지를 만듭니다.
  • 여러 컨테이너에서 공유 가능.
  • 예:이렇게 하면 myvol이라는 도커 볼륨이 /home/ubuntu/data와 연결됩니다.
  • docker volume create myvol docker run -it --name myu -v myvol:/home/ubuntu/data my-ubuntu:0.1 /bin/bash

2. 가장 추천하는 방법

  • 테스트나 단발성 복사 → docker cp
  • 지속적으로 파일을 공유 → -v 옵션으로 호스트 디렉터리 마운트

3. 실습 권장 순서

  1. 컨테이너 안에서 /home/ubuntu/test.txt 같은 파일 하나 만듭니다.
  2. echo "hello from container" > /home/ubuntu/test.txt
  3. 호스트에서 복사:→ 복사된 파일 확인.
  4. docker cp myu:/home/ubuntu/test.txt /home/easyfly/ ls /home/easyfly/
  5. 반대로 호스트에서 hello.txt 파일을 만들어서 컨테이너로 넣어보세요:
  6. echo "hello from host" > /home/easyfly/hello.txt docker cp /home/easyfly/hello.txt myu:/home/ubuntu/

✅ 정리

  • docker cp : 단발성 복사에 편리
  • -v 볼륨 마운트 : 지속적이고 자동 동기화에 유리

 

'컴퓨터과학과' 카테고리의 다른 글

쿠버네티스  (1) 2025.09.16
컨테이너와 호스트 관계  (3) 2025.09.02
Git, 최근 상태로 복구  (0) 2025.08.31
docker ps와 docker compose ps  (4) 2025.08.26
Django + MySQL + Docker에서 첫 앱 만들기(완전 가이드)  (4) 2025.08.25

댓글