Container Runtime, Rootfull vs Rootless
Pendahuluan
pendahuluan mengenai Container - bisa dilihat di sini
pendahuluan mengenai Virtualisasi - Hypervisor - bisa dilihat di sini
Ketika kita menjalankan container (Docker, containerd, Podman), ada dua cara utama:
- rootful
- rootless.
Perbedaannya terletak pada hak akses yang digunakan saat menjalankan container.
Rootful Container Runtime
Rootful berarti runtime container berjalan dengan hak akses root di host.
Cara kerjanya:
- Docker daemon atau container runtime berjalan sebagai root.
- Container bisa melakukan berbagai hal yang butuh izin tinggi, seperti:
- mengatur jaringan (iptables),
- melakukan mount filesystem,
- memakai cgroups penuh.
Kelebihan:
- Kinerja cepat.
- Semua fitur Docker/OCI bekerja normal.
- Cocok untuk server produksi dan Kubernetes.
Kekurangan:
- Jika container diretas → penyerang bisa menguasai host.
- Lebih berisiko dalam lingkungan multi-user.
Rootless Container Runtime
Rootless berarti container berjalan tanpa hak akses root—semua berjalan sebagai user biasa.
Cara kerjanya:
- Menggunakan fitur user namespace.
- User biasa dipetakan sebagai “root virtual” di dalam container, tapi tidak punya akses root ke host.
- Networking menggunakan user-space tools (contoh: slirp4netns).
Kelebihan:
- Jauh lebih aman—jika container bocor, host tetap aman.
- Bisa dijalankan tanpa izin administrator (non-root user).
- Ideal untuk laptop, development, dan server bersama.
Kekurangan:
- Kinerja I/O bisa lebih lambat.
- Beberapa fitur Docker tidak tersedia.
- Networking tidak sekuat rootful.
Perbandingan
| Aspek | Rootful | Rootless |
|---|---|---|
| Hak akses | Pakai root | Tanpa root |
| Keamanan host | Risiko lebih tinggi | Jauh lebih aman |
| Kecepatan | Lebih cepat | Sedikit lebih lambat |
| Fitur | Lengkap | Ada batasan |
| Penggunaan | Production, Kubernetes | Development, multi-user |
Kapan Menggunakan Apa?
Gunakan Rootful jika:
- Membangun sistem produksi.
- Butuh performa maksimal.
- Running Kubernetes atau server besar.
Gunakan Rootless jika:
- Fokus pada keamanan.
- Menjalankan container di laptop atau server tanpa root.
- Lingkungan multi-user.