Kodeloka
  1. Kodeloka
  2. Kelas Docker
  3. Materi

Architecture · Modul 3 dari 21

Software Processes & Linux System Isolation

Bagaimana Linux Kernel mengisolasi proses menggunakan Namespaces (PID, NET, MNT) dan Control Groups (cgroups).

Proses Perangkat Lunak & Rahasia Isolasi Linux

Di balik layar, kontainer Docker sebenarnya adalah Proses Linux Biasa yang diisolasi menggunakan fitur bawaan dari Linux Kernel.

Dua Teknologi Utama Linux Kernel:

1. Linux Namespaces (Isolasi Visibilitas)

Namespaces membatasi apa yang bisa dilihat oleh suatu proses. Seolah-olah proses tersebut hidup di dalam komputer tersendiri:

  • PID Namespace: Mengisolasi Process ID. Di dalam kontainer, proses utama memiliki PID 1, padahal di Host OS memiliki PID misal 4892.
  • NET Namespace: Mengisolasi kartu jaringan, alokasi IP Address, routing table, dan port.
  • MNT (Mount) Namespace: Mengisolasi direktori mount dan file system.
  • IPC Namespace: Mengisolasi komunikasi antar proses (Inter-Process Communication).
  • UTS Namespace: Mengisolasi Hostname dan nama domain.
  • USER Namespace: Mengisolasi User ID dan Group ID (User root di kontainer bisa dipetakan ke non-root di host).

2. Control Groups / cgroups (Pembatasan Sumber Daya)

Jika Namespace membatasi apa yang bisa *dilihat*, cgroups membatasi apa yang bisa *digunakan* oleh kontainer (misal: Maksimal 512MB RAM dan 1.5 CPU core).

⚠️ Keamanan: Berkat isolasi Namespace & cgroups, kontainer yang diretas tidak dapat mengakses file sistem host atau kontainer tetangganya.