Chapter sebelumnya kita mengenal barisan komponen Docker — docker CLI, dockerd, containerd, runc — beserta perannya masing-masing. Pertanyaan praktis yang langsung menggantung adalah: perangkat-perangkat itu kita dapatkan dalam bentuk apa, dan dari mana kita memasangnya? Docker menyediakan dua jalur distribusi resmi dengan karakter yang berbeda: Docker Engine untuk lingkungan Linux murni, dan Docker Desktop sebagai aplikasi terpadu untuk mesin developer. Chapter ini membedah isi keduanya, membandingkan komponennya, lalu membantu kita memilih jalur yang tepat untuk setiap situasi.

Docker Engine #

Docker Engine adalah distribusi inti Docker: paket perangkat lunak yang berisi daemon dockerd beserta REST API-nya dan docker CLI. Engine bersifat open source dan gratis, dirancang berjalan native di atas Linux, dan tidak memiliki antarmuka grafis apa pun — semua interaksi berlangsung dari terminal. Inilah bentuk Docker yang dipasang di server, di virtual machine, dan di pelari CI di seluruh dunia.

Pemasangan resmi Engine di Ubuntu dan Debian dilakukan lewat beberapa paket apt yang saling melengkapi. Lima paket tersebut adalah sebagai berikut:

PaketIsi
docker-ceDaemon dockerd beserta REST API
docker-ce-cliPerintah docker di terminal
containerd.iocontainerd dan runc sebagai runtime container
docker-buildx-pluginPlugin buildx untuk docker build modern
compose-pluginPlugin docker compose

Langkah pemasangan lengkap kelima paket ini kita kerjakan pada Chapter Instalasi Docker di Linux. Perhatikan bahwa tidak ada paket untuk GUI, dashboard, atau fitur tambahan apa pun — Engine memang dibuat minimalis: daemon, CLI, runtime, dan dua plugin inti.

Docker Desktop #

Docker Desktop adalah aplikasi desktop satu paket untuk Windows, macOS, dan Linux. Inti keajaibannya ada pada VM Linux internal yang dikelolanya secara otomatis: pada Windows VM tersebut dibangun di atas WSL 2, pada macOS di atas backend virtualisasi, dan pada Linux di atas mesin virtual QEMU dengan KVM. Docker Engine lengkap — dockerd, containerd, runc — berjalan di dalam VM itu, sementara docker CLI di mesin kita berbicara ke daemon di dalamnya seolah-olah keduanya berada di komputer yang sama.

Isi Docker Desktop jauh lebih kaya daripada Engine saja. Di dalamnya sudah terpasang docker CLI, BuildKit dan buildx untuk membangun image, plugin docker compose, serta antarmuka grafis untuk mengelola container, image, dan volume dari satu dashboard. Desktop juga membawa ekosistem tambahan seperti Extensions untuk memasang alat pihak ketiga dan Scout untuk memeriksa kerentanan image. Seluruh perangkat tersebut diperbarui dalam satu paket tunggal, sehingga laptop developer mendapat pengalaman pasang-sekali-lalu-lupa.

Perbandingan Komponen #

KomponenDocker EngineDocker Desktop
dockerd dan REST APITerpasang native di LinuxTerpasang di dalam VM internal
docker CLITerpasangTerpasang
containerd dan runcTerpasangTerpasang
Plugin buildxPaket terpisah saat pemasanganSudah terpasang
Plugin ComposePaket terpisah saat pemasanganSudah terpasang
BuildKitBawaan sejak Docker 23.0Bawaan
Dashboard GUITidak adaAda
Extensions dan ScoutTidak adaAda
PlatformLinuxWindows, macOS, Linux

Tabel di atas menunjukkan bahwa tidak ada komponen inti yang hilang di salah satu sisi. Perbedaannya terletak pada kemasan: Engine menyajikan komponen inti secara terpisah dan minimalis, sedangkan Desktop menyatukan semuanya ditambah lapisan kenyamanan di atasnya. Karena keduanya memakai dockerd, containerd, dan runc yang sama, keahlian yang kita bangun di salah satu jalur berlaku penuh di jalur satunya.

Catatan Compose Plugin #

Ada satu kebiasaan penulisan yang perlu kita tetapkan sejak awal. Perintah Compose modern ditulis docker compose — dua kata tanpa tanda hubung — karena Compose kini hadir sebagai plugin CLI. Versi lama Compose dulu berupa binary terpisah yang namanya memakai tanda hubung; bentuk tersebut sudah berstatus legacy, tidak lagi menerima fitur baru, dan tidak kita pakai sepanjang Course ini. Kita bisa memastikan plugin yang terpasang dengan satu perintah:

bash
$ docker compose version

Output yang Dihasilkan:

text
Docker Compose version v5.6.0

Sebagai pelengkap kebiasaan tersebut, berkas definisi Compose modern bernama compose.yaml dan tidak lagi memakai kunci lama bernama version yang kini berstatus obsolete. Kedua kebiasaan ini akan terus kita pakai saat tiba di Section Docker Compose.

Lisensi Docker Desktop #

Docker Desktop menerapkan model lisensi yang membedakan pengguna perorangan dan organisasi besar. Pemakaian untuk keperluan personal, edukasi, dan usaha kecil gratis sepenuhnya. Organisasi besar masuk kategori berbayar: yang memiliki lebih dari 250 karyawan, atau pendapatan tahunan di atas 10 juta dolar AS, memerlukan langganan berbayar untuk memakai Docker Desktop.

Kapan Memilih Engine atau Desktop #

Docker Engine adalah pilihan tepat untuk lingkungan tanpa layar dan tanpa kompromi: server produksi, virtual machine, pelari CI, dan container di VPS. Engine ramping, tidak membawa GUI yang memakan resource, bebas dari pertimbangan lisensi, dan sepenuhnya cukup untuk menjalankan beban kerja yang dikelola lewat terminal atau alat otomasi. Untuk mesin-mesin semacam ini, memasang Desktop justru menambah bobot tanpa manfaat.

Docker Desktop unggul di laptop developer. Satu pemasangan di Windows, macOS, atau Linux langsung menghadirkan Engine, CLI, buildx, Compose, dan dashboard dalam kondisi siap pakai — tanpa perlu merakit VM Linux secara manual. Bagi developer yang ingin menyalin pengalaman lingkungan kerja antar sistem operasi, Desktop adalah jalur tercepat. Pembandingan menyeluruh keduanya, termasuk opsi remote host, kita bahas ulang pada Chapter Memilih Lingkungan Docker di Section Instalasi dan Konfigurasi.

Sebelum benar-benar memasang apa pun, ada tiga istilah yang wajib kita kuasai lebih dulu karena akan muncul di hampir setiap perintah Docker: image, container, dan registry. Ketiganya membentuk satu siklus hidup yang utuh — image ditarik dari registry, dijalankan sebagai container, lalu container dibuang sementara image tinggal. Chapter Image, Container, dan Registry membedah ketiganya satu per satu.

Referensi #