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.