[Docker] 도커 볼륨 관리
✅ 도커 볼륨: 컨테이너 데이터 영구 저장의 해법
지난 포스팅에서는 도커 컨테이너의 자원 관리에 대해 알아보았습니다. 이번에는 컨테이너의 데이터를 안전하게 관리하고 영구적으로 보존하는 방법, 바로 도커 볼륨에 대해 알아보겠습니다. 컨테이너는 기본적으로 삭제 시 내부 데이터도 함께 사라지기 때문에, 데이터의 영속성을 보장하려면 볼륨을 사용해야 합니다. 함께 도커 볼륨의 세계로 뛰어들어 봅시다!
☑️ 왜 도커 볼륨이 필요할까요?
- 컨테이너 데이터의 영속성: 컨테이너는 삭제되면 내부 데이터도 함께 사라집니다. 볼륨은 컨테이너와 별도로 데이터를 저장하여 컨테이너가 삭제되거나 재시작되어도 데이터를 보존할 수 있도록 합니다.
- 컨테이너 간 데이터 공유: 여러 컨테이너가 동일한 볼륨을 마운트하여 데이터를 공유할 수 있습니다. 예를 들어, 웹 서버 컨테이너와 데이터베이스 컨테이너가 동일한 볼륨을 사용하여 데이터를 공유할 수 있습니다.
- 호스트 시스템과 데이터 공유: 볼륨을 사용하여 컨테이너와 호스트 시스템 간에 데이터를 쉽게 공유할 수 있습니다. 예를 들어, 호스트 시스템에서 생성된 파일을 컨테이너 내부에서 사용하거나, 컨테이너에서 생성된 파일을 호스트 시스템으로 복사할 수 있습니다.
☑️ 도커 볼륨의 종류와 사용 방법
1. 바인드 마운트 (Bind Mount)
- 호스트 시스템의 특정 디렉토리를 컨테이너 내부 디렉토리에 마운트합니다.
v
또는-mount
옵션을 사용하여 바인드 마운트를 설정합니다.- 예시:
docker run -v /home/user/data:/app/data my-image
2. 도커 관리 볼륨 (Docker Managed Volume)
- 도커가 관리하는 볼륨을 생성하여 컨테이너에 마운트합니다.
docker volume create
명령어로 볼륨을 생성하고,v
또는-mount
옵션을 사용하여 컨테이너에 마운트합니다.- 예시:
docker volume create my-volume
docker run -v my-volume:/app/data my-image
3. tmpfs 마운트 (tmpfs Mount)
- 호스트 시스템의 메모리를 컨테이너 내부 디렉토리에 마운트합니다.
-tmpfs
또는-mount type=tmpfs
옵션을 사용하여 tmpfs 마운트를 설정합니다.- 예시:
docker run --tmpfs /app/cache my-image
☑️ 데이터 지속성을 위한 볼륨 구성
데이터베이스 컨테이너와 같이 데이터 지속성이 중요한 경우, 볼륨을 사용하여 데이터를 안전하게 보존해야 합니다. 예를 들어, MySQL 데이터베이스 컨테이너의 데이터 디렉토리를 볼륨으로 마운트하면 컨테이너가 삭제되거나 재시작되어도 데이터베이스 데이터는 유지됩니다.
☑️ 볼륨 사용량 제한 구성
컨테이너가 사용하는 볼륨의 용량을 제한하여 디스크 공간 부족 문제를 방지할 수 있습니다. 도커는 --storage-opt size=
옵션을 통해 볼륨의 최대 크기를 제한할 수 있습니다. 또한, 컨테이너의 루트 파일 시스템(/
) 용량도 제한할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.
Comments powered by Disqus.