Perbandingan Infrastruktur: Bare Metal vs VM vs Container
Untuk memahami arsitektur Docker, kita harus melihat perjalanan evolusi komputasi server selama 2 dekade terakhir.
1. Physical Servers (Bare Metal)
Aplikasi diinstal langsung di atas Sistem Operasi server fisik. Masalah utama: Pemborosan sumber daya (CPU & RAM idle), biaya hardware mahal, dan instalasi yang lambat.
2. Virtual Machines (Virtualisasi Tradisional)
Teknologi seperti VMware, VirtualBox, atau KVM menggunakan **Hypervisor** untuk membagi hardware fisik menjadi beberapa VM. Setiap VM memiliki Guest OS tersendiri yang lengkap (misal: Ubuntu, Windows Server).
- Kelebihan: Isolasi total tingkat hardware.
- Kekurangan: Sangat berat (overhead memori & CPU besar), boot time lambat (hitung menit), ukuran image puluhan Gigabyte.
3. Containers (Docker)
Kontainer **TIDAK** membutuhkan Guest OS terpisah! Semua kontainer berbagi (share) **Host OS Kernel** yang sama, namun terisolasi di tingkat proses (user space).
Kontainer Docker dapat di-start hanya dalam waktu hitungan milidetik atau detik, dengan penggunaan memori yang sangat minim (hanya beberapa MB).
+-----------------------+ +-----------------------+
| App A | App B | | App A | App B |
| (Deps) | (Deps) | | (Deps) | (Deps) |
+----------+------------+ +----------+------------+
| Docker Engine | | Guest OS | Guest OS |
+-----------------------+ +----------+------------+
| Host OS | | Hypervisor |
+-----------------------+ +-----------------------+
| Physical Hardware | | Physical Hardware |
| (Containers) | | (Virtual Machines) |
+-----------------------+ +-----------------------+