VM 이미지
- Guest OS 전체 포함 (커널 + 시스템 전부)
- 수 GB ~ 수십 GB
컨테이너 이미지
- 커널 없음 (Host 커널 공유)
- 앱 실행에 필요한 것만
- 수 MB ~ 수백 MB
→ 커널을 포함 안 해도 되니까 작은 것
ubuntu (100MB)
↓
java 이미지 = ubuntu + jdk (100MB + 200MB = 300MB)
↓
myapp 이미지 = ubuntu + jdk + app (300MB + 10MB = 310MB)
디스크에는
---------
ubuntu 레이어 100MB ← java, myapp이 공유
jdk 레이어 200MB ← myapp이 공유
app 레이어 10MB
실제 저장 = 310MB (310MB + 310MB 아님)
→ 디스크 공간 절약, 배포 시 이미 있는 레이어 스킵
이미지 크기 자체가 작은 이유 → 커널 미포함
디스크/배포 효율이 좋은 이유 → overlay2 레이어 공유
둘 다 맞지만 이유가 다