문제상황
Docker Container가 실행되었다가 중단되면 데이터 유실됨
도커 컨테이너를 통해 동작할 때 일회성이 아니고 계속 사용한다면 데이터가 유지되기를 원한다
데이터가 영구적으로 보관 필요 Data persistence
≫ Docker Volumes !
Docker Volume?
Docker Container내의 가상 파일 시스템과 호스트 시스템의 파일 시스템을 맵핑(마운트)
(예) 호스트 파일 시스템의 /logs 나 /dags 폴더를 Docker Container의 var/lib/airflow/logs 폴더로 맵핑(마운트)
→ 컨테이너가 사라져도 데이터는 남는다
파일시스템에서 마운트 mount 란?
디스크와 같은 물리적인 장치를 파일 시스템의 특정 위치(폴더)에 연결해주는 것
↔ unmount
Docker Volume 타입
1. Host Volumes docker run -v를 실행할 때 페어로 지정
$ docker run -v 호스트파일시스템패스:컨테이너파일시스템패스
2. Anonymous Volumes docker run -v를 실행할 때 컨테이너 패스만 지정
$ docker run -v 컨테이너파일시스템패스
docker engine이 알아서 호스트파일시스템패스 지정
3. Named Volumes docker run -v를 실행할 때 이름과 컨테이너 패스를 지정
$ docker run -v name:컨테이너파일시스템패스
가장 많이 쓰는 방식. 패스 이름(별칭)을 내가 지어줌. 관리가 쉬움
* Volume을 Readonly로 지정하기 위해서 ro 사용
$ name:/var/lib/mysql/data:ro
defalut는 rw(read-write) ro로 지정해두면 컨테이너에서는 수정 못함
Docker Volume 사용법
1. Dockerfile을 통해서 VOLUME 명령을 통해 사용가능 하지만, Anonymous Volumes만 지정 가능
2. Docker-compose 로 관리 ⭐️⭐️
'데브코스 데이터엔지니어링' 카테고리의 다른 글
Docker Network voting application 예제 프로그램(1) (0) | 2024.11.19 |
---|---|
Docker 환경 클린업 방법 컨테이너, 이미지 삭제, Troubleshoot clean (0) | 2024.11.19 |
Docker 명령어 정리 Image, Hub, Container, logs, exec, Volume (0) | 2024.11.19 |
[Docker] Mac OS 맥에서 Docker Desktop 설치 & 도커 컨테이너 생성 (0) | 2024.11.19 |
Docker Containers vs. Virtual Machine(VM) 차이 (1) | 2024.11.19 |