본문 바로가기
Laravel/Docker

Docker Volume 볼륨 | 로컬 환경에 Docker 컨테이너와 연결된 디렉터리 생성

by Sein_ 2023. 10. 7.
728x90

Docker Volume 볼륨

Docker에 의해 관리되는 데이터 저장을 위한 매커니즘입니다.

docker-compose.yml 파일 내에서 볼륨 설정을 통해 특정 호스트 디렉터리나 Docker 볼륨을 컨테이너와 연결할 수 있습니다.

 

#docker-compose.yml 볼륨 설정 예시
services:
  web:
    image: nginx
    volumes:
    #로컬(host)의 /path/on/host 디렉터리와 컨테이너의 /path/in/container 디렉터리 연결
      - /path/on/host:/path/in/container

 

  • 데이터 저장을 위한 매커니즘 입니다.
  • 컨테이너와 독립적으로 생명 주기를 갖습니다.
  • 컨테이너가 삭제되어도 볼륨에 저장된 데이터는 삭제되지 않습니다.
    • 볼륨은 데이터의 영속성을 보장하기 위한 주요 도구
    • 여러 컨테이너 간에 데이터를 공유하거나 데이터 관리 작업을 수행하는 데도 유용
  • 볼륨을 통해 호스트(로컬)의 특정 디렉토리에 저장되지만, Docker가 이를 관리합니다.

 

Docker 컨테이너는 일시적(temporary)인 성격을 가지므로, 컨테이너 내에서 생성된 데이터는 컨테이너가 종료될 때 함께 사라집니다.

따라서, Docker 환경에서 데이터의 지속성을 보장하기 위해 볼륨(volume)을 사용하여 데이터를 컨테이너 외부에 저장하게 됩니다.

이렇게 하면 컨테이너가 삭제되거나 재시작되어도 해당 데이터는 보존될 수 있습니다.

 


 

호스트(로컬)에 Docker 컨테이너와 연결된 디렉터리 생성하는 방법

 

1. Docker 설치:

로컬 환경에 Docker가 설치되어 있지 않다면 Docker 공식 웹사이트에서 적절한 버전의 Docker를 다운로드하고 설치하세요.

 

2. 디렉터리 생성:

로컬 시스템에서 Docker 컨테이너와 연결하려는 폴더를 생성합니다. 예: /path/on/host

 

3 (옵션 1). 컨테이너 실행 및 볼륨 마운트:

Docker 컨테이너를 실행할 때 -v 또는 --volume 옵션을 사용하여 로컬 폴더와 컨테이너 내의 특정 경로를 연결합니다.

# /path/on/host라는 로컬 폴더를 컨테이너의 /path/in/container 위치에 마운트합니다.
docker run -v /path/on/host:/path/in/container my_image

 

3 (옵션 2). Docker Compose 사용 :

여러 컨테이너와 복잡한 설정이 필요한 경우,

docker-compose.yml 파일을 사용하여 여러 서비스와 볼륨을 정의하고 관리할 수 있습니다.

#docker-compose.yml에서 볼륨 설정 예
version: '3'
services:
  web:
    image: my_image
    volumes:
      - /path/on/host:/path/in/container

 

4. 데이터 공유:

이제 로컬 시스템의 /path/on/host 폴더와 컨테이너의 /path/in/container 폴더는 연결되어 있습니다.

따라서 로컬에서 파일을 추가/수정/삭제하면 컨테이너 내에서도 동일한 변경사항을 확인할 수 있습니다.

반대로 컨테이너 내에서의 변경도 로컬 폴더에 반영됩니다.

 

 

 

 

https://www.lainyzine.com/ko/article/docker-tutorial/#%EB%8F%84%EC%BB%A4-%EB%B3%BC%EB%A5%A8-%EA%B8%B0%EB%8A%A5%EC%9C%BC%EB%A1%9C-%ED%98%B8%EC%8A%A4%ED%8A%B8%EC%99%80-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EC%9D%98-%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC-%EC%97%B0%EA%B2%B0%ED%95%98%EA%B8%B0

 

따라하면서 시작하는 Docker 입문 튜토리얼

Docker는 리눅스 컨테이너를 사용하기 쉽게 도와주는 커맨드라인 명령어입니다. Docker의 핵심 기능들을 따라하면서 배워보세요.

www.lainyzine.com