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 폴더는 연결되어 있습니다.
따라서 로컬에서 파일을 추가/수정/삭제하면 컨테이너 내에서도 동일한 변경사항을 확인할 수 있습니다.
반대로 컨테이너 내에서의 변경도 로컬 폴더에 반영됩니다.
따라하면서 시작하는 Docker 입문 튜토리얼
Docker는 리눅스 컨테이너를 사용하기 쉽게 도와주는 커맨드라인 명령어입니다. Docker의 핵심 기능들을 따라하면서 배워보세요.
www.lainyzine.com
'Laravel > Docker' 카테고리의 다른 글
*Docker 오류) SQLSTATE[42S02]: Base table or view not found (0) | 2023.10.25 |
---|---|
Docker에서 실행 중인 프로젝트의 bash 쉘 접근 (0) | 2023.10.07 |