본문 바로가기
docker

docker3) 파일 복사 , 볼륨 마운트

by ernest45 2025. 4. 15.

 

마운트란?

 

목표!

 

컨테이너와 호스트(도커 엔진 실행 pc) 사이 파일 복사하는 방법 배우기

볼륨마운트에 대해 배우기

 

 

 

 

 

-파일복사-

 

파일 복사는 컨테이너 -> 호스트, 호스트 -> 컨테이너 양방향 가능

 

 

 

 

1) 명렁어 cp로 호스트에게 파일 복사

 

 

1. 아파치 서버 만들기

 

2. html 파일을 복사

 

명렁어 - docker cp 호스트 컨테이너

 

  성공!

 

 

 

2) 명령어 cp로 컨테이너에서 호스트로

 

 

1. 테스트를 위해 삭제

 

 

 

2.cp 명령어

 

명렁어 - docker cp 컨테이너 호스트

 

3. 확인

 

 

 

 

 

-볼륨마운트-

 

외부 저장소를 가져 오는 느낌!

 

볼륨을 마운트하면 컨테이너 일부를 호스트 컴퓨터의 일부처럼 다룰 수 있어 편하다.

 

볼륨 마운트(Volume Mount)**는 컨테이너 안의 데이터호스트(컴퓨터)와 공유하거나, 유지하기 위해 사용하는 기능

 

컨테이너 안의 특정 폴더를 밖으로 연결

 

(이미지나 컨테이너는 생성하고 삭제의 경우가 빈번해서 데이터 유지를 위해)

왜 쓰냐면?

  • 컨테이너는 삭제되면 데이터도 사라지는데, 볼륨을 쓰면 데이터는 남아 있음
  • 호스트에 있는 파일을 컨테이너가 접근하거나 수정가능
  • 여러 컨테이너가 같은 데이터를 공유

 

 

 

마운트 종류

바인드 마운트 (Bind Mount)

  • 내가 지정한 경로를 그대로 컨테이너에 연결하는 방식
  • 도커 엔진이 관리하지 않고, 호스트 컴퓨터의 자료

볼륨 마운트 (Volume Mount)

  • 도커가 자동으로 관리해주는 저장 공간
  • 따로 경로 지정 안 해도 되고, 도커가 알아서 내부에 저장소 만들줌

 

 

바인드 마운트는: 개발할 때 유용함 (호스트 디렉토리 직접 연결) 

볼륨 마운트는: 운영/배포할 때 유용함 (도커가 알아서 관리)

 

 

 

  바인드 마운트 (Bind Mount)                    볼륨 마운트 (Volume Mount)
생성 방식 호스트의 경로를 직접 지정 도커가 자동으로 관리하는 볼륨 생성
물리적 위치 어디든 가능 도커 엔진의 관리 영역
사용 용도 개발 환경 (코드 실시간 반영 필요할 때) 운영 환경 (데이터 유지, 백업 필요할 때)
내용 편집 일반적 파일과 같음 높음 (도커가 경로 관리)
백업 및 복원 일반적 파일과 같음 절차가 복잡
마운트 절차 기존 파일 또는 폴더로 마운트 볼륨을 생성 후 마운트
권한/보안 호스트 권한 영향 받음 상대적으로 격리되어 있어 보안에 유리함

 

 

 

 

마운트 방식

 

run 커맨드 옵션형태로 지정

 

 

마운트하려는 스토리지의 경로가 컨테이너 속 특정 경로와 연결되도록 설정하는 것

 

 

ex) 바탕화면의 단축아이콘처럼 다른 곳에 있지만, 단축 아이콘을 사용해 그곳에 있는 것 처럼 사용 가능

 

 

 

스토리지를 마운트하는 절차

 

먼저 마운트될 스토리지 생성 후 마운트

(마운트 동시에 볼륨을 만들 수도 있지만, 따로 하는 것을 권장!)

 

#바인드 마운트의 커맨드
docker run -v 스토리지_실제_경로:컨테이너_마운트_경로

#볼륨 마운트의 커맨드
docker run -v 컨테이너_마운트_경로

 

 

 

 

 

실습 - 바인드 마운트 해보기

 

 

 

apa_folder 라는 기본 폴더 생성 후

 

docker -v 실제 경로 : 컨테이너 마운트 경로

 

 

 

 

결과

 

 

폴더가 마운트돼서 index of/로 나옴 (아무 것도 넣지 않고 폴더만 넣은 상태)

 

 

 

apa_folder에 index.html을 넣을 시

 

index.html이 출력

 

 

 

실습 - 볼륨 마운트 해보기

 

 

1. 마운트할 볼륨 생성

 

 

docker volume create  

 

볼륨이 생성될 위치는 도커 엔진이 관리하기 때문에 신경 쓰지 않아도 됨!

 

 

 

 

2. run 커맨드로 아파치 컨테이너 실행

 

 

-v 옵션으로 조금 전에 생성한 볼륨과 컨테이너 속 마운트 위치를 정함

 

 

3. volume inspect

 

 

volume inspect 명령어로 볼륨의 상세 정보를 확인

 

 

 

4. container inspect

 

 

마운트 정보를 알 수 있다.

 

volume rm 으로 볼륨도 삭제 가능

'docker' 카테고리의 다른 글

docker 컴포즈  (0) 2025.04.21
docker4) 컨테이너로 이미지 만들기  (0) 2025.04.16