Container의 Layer에 데이터를 저장할 수 있다는 것을 알고 있다.
다만, 여기에는 몇 가지 문제점이 있다.
- Container가 삭제되면 Data도 같이 삭제됩니다.
- 다른 프로세스에서 Container에 저장된 Data를 사용하기 어렵다.
- Container의 Layer에는 Container가 실행 중인 호스트와 밀접하게 연결되며, 데이터를 다른 곳으로 쉽게 옮길 수 없다.
- Container의 Layer에 데이터를 저장하기 위해서는 파일시스템을 관리하는 스토리지 드라이버가 필요하다. 스토리지 드라이버는 Linux 커널을 사용하여 공용 파일 시스템을 제공합니다. 이 기능은 호스트의 파일시스템에 직접 쓰는 데이터 volume보다 성능이 떨어진다.
도커는 데이터를 안전하게 유지시킬 수 있는 방법으로 volume, bind mounts, tmpfs 를 제공한다.
도커 공식 페이지는 volume을 쓰는것을 권장하고 있다.
아래는 Container의 데이터관리 방식들을 설명한다.
Volume
- volume은 Docker(Linux는 /var/lib/docker/volume/)가 관리하는 호스트 파일 시스템의 일부에 데이터가 저장된다.
- Non-Docker 프로세스들이 파일 시스템의 해당 부분을 수정해서는 안된다.
- 도커에서 데이터를 남길 수 있는 가장 좋은 방법이다.
bind mount
- bind mount 파일 또는 디렉토리는 호스트 시스템의 절대 경로로 참조된다.
- bind mount는 성능이 좋지만 특정 디렉토리 구조를 사용할 수 있는 호스트 시스템의 파일 시스템에 의존한다.
tmpfs
- tmpfs mount는 호스트의 메모리에만 데이터가 저장된다.
- 호스트의 파일시스템에는 저장되지 않는다.
관련 명령어는 뒤에 따로 다룰 예정이다.
반응형
'도커' 카테고리의 다른 글
Docker 명령어(volume) (0) | 2022.06.20 |
---|---|
docker 기본 명령어 (0) | 2022.06.19 |
Docker - 레이어(layer) (0) | 2022.06.19 |
Docker - Dockerfile (0) | 2022.06.19 |
Docker - Container, Image (0) | 2022.06.19 |
댓글