-
도커 일곱번째프로그래밍/Docker 2024. 1. 15. 21:19
docker volume 에 대한 이해
- 도커에서 제공하는 볼륨은 컨테이너 어플리케이션에서 생성되고 사용되는 데이터를 유지, 보존하기 위한 매커니즘 제공
컨테이너가 삭제되더라도 볼륨은 독립적으로 운영되기 때문에 데이터를 유지함
- 볼륨 기술은 도커 호스트OS와 컨테이너에서 직접 접근이 가능
- 컨테이너 내부의 데이터는 컨테이너 생명주기와 연관되어 컨테이너 종료 시 삭제되지만,
이를 계속 보존하기 위한 방법으로 볼륨 기술을 사용
도커에서 제공하는 3가지 볼륨 기술
1. bind mount
2. docker volume
3. tmpfs mount
1. bind mount
- 특정 디렉토리를 연결하는 방법 (파일도 가능)
- "호스트 파일 시스템 절대경로" : "컨테이너 내부경로" 로 직접 마운트하여 사용
- 사전에 미리 디렉토리나 파일을 생성하면 해당 호스트의 소유가 되지만, 자동생성되는 경우 루트 사용자의 소유가 된다.
- 컨테이너를 삭제하면 마운트는 자동으로 해제되지만 생성된 디렉토리와 파일은 그대로 남아있다.
2. docker volume
- 도커에서 권장하는 방법. "docker volume create 볼륨명" 으로 생성
- docker root dir (/var/lib/docker) 의 volumes 영역에 자동으로 만들어진다.
- 볼륨 드라이버(vieux / sshfs plugin) 를 통해 원격 호스트 및 클라우드 환경에 볼륨 내용을 저장하고 암호화 가능.
- 새 볼륨으로 지정될 디렉토리에 미리 데이터를 채우고 컨테이너에 연결 시 컨테이너 내에서 바로 사용가능
- 도커 볼륨은 볼륨데이터를 도커가 관리함
3. tmpfs mount
- 이 방식은 도커 호스트OS의 메모리에서만 지속되고 해당 컨테이너가 중지되면 연결 해제와 함께 데이터도 사라진다.
- 컨테이너 간 공유설정이 안되며, 리눅스 기반 도커에서만 지원됨
- 임시로 사용하고 지울 파일, 데이터에 유용함 (호스트 및 컨테이너의 write에 파일이 기록되지 않음)