L PlnExo Course
Docker Fast Track

Apa itu Docker & Container — beda dengan Virtual Machine

Preview

"Di laptopku jalan kok." Kalimat legendaris ini sudah merusak hari kerja jutaan developer — dan Docker adalah alat yang dibuat supaya kamu tidak perlu mengucapkannya lagi.

"Di laptopku jalan kok" — masalah yang diselesaikan Docker

App yang jalan mulus di laptop kamu bisa tiba-tiba error di laptop teman atau di server. Penyebabnya hampir selalu sama: environment-nya beda — versi Node/Python tidak sama, ada library sistem yang belum ter-install, konfigurasi OS-nya lain.

Container menyelesaikan ini dengan membungkus app kamu bersama semua yang dia butuhkan — runtime, library, konfigurasi — jadi satu paket yang jalan sama persis di mesin mana pun.

Docker adalah platform paling populer untuk membuat dan menjalankan container: kamu deskripsikan environment app sekali, semua orang (dan semua server) menjalankan salinan yang identik.

Container vs Virtual Machine — beda level isolasinya

Kalau kamu pernah pakai VirtualBox/VMware, wajar mengira container itu "VM versi mini". Padahal cara kerjanya beda level:

flowchart LR
    subgraph VM["Virtual Machine"]
        direction TB
        A1["App"] --> G1["Guest OS utuh (GB-an)"] --> HV["Hypervisor"] --> HW1["Host OS + Hardware"]
    end
    subgraph CT["Container"]
        direction TB
        A2["App + dependency (MB-an)"] --> DE["Docker Engine"] --> HW2["Host OS + Hardware"]
    end
Container Virtual Machine
Yang dibawa App + dependency saja App + seluruh guest OS
Ukuran tipikal Puluhan–ratusan MB Beberapa GB
Waktu start Detik Menit
Isolasi Level proses, share kernel host Level hardware, kernel sendiri
Muat di 1 laptop Puluhan container Beberapa VM

Apa yang sebenarnya di-share: kernel

Container tidak membawa OS sendiri. Semua container di satu mesin memakai kernel host yang sama — Docker hanya mengisolasi proses, filesystem, dan network masing-masing container (lewat fitur Linux bernama namespaces dan cgroups; cukup kenal namanya dulu).

Karena tidak ada guest OS yang harus di-boot, container jadi ringan dan cepat: start dalam hitungan detik, dan satu laptop sanggup menjalankan puluhan container sekaligus.

Kenapa developer pakai Docker tiap hari

  • Coba software tanpa install — butuh PostgreSQL untuk eksperimen? Satu command, jalan; selesai, hapus tanpa sisa apa pun di sistem kamu.
  • Environment konsisten — kode yang sama jalan identik di laptop kamu, laptop teman, CI, dan production.
  • Onboarding kilat — anggota tim baru cukup clone repo lalu satu command, bukan setengah hari install dependency.
  • Fondasi deployment modern — hampir semua platform cloud dan CI/CD sekarang berbasis container.

Ringkasan

  • Masalah yang diselesaikan: "works on my machine" — environment yang beda-beda antar mesin.
  • Container = paket berisi app + semua dependency-nya, jalan identik di mana saja.
  • Container ≠ VM: container share kernel host (ringan, start dalam detik), VM membawa OS utuh (berat, start dalam menit).
  • Docker = platform paling populer untuk membuat & menjalankan container.

Selanjutnya, kita bereskan tiga kata yang paling sering bikin pemula bingung: image, container, dan registry.