"Tapi di komputer saya jalan." Setiap developer pernah mengatakannya, atau menderita karena orang lain yang mengatakannya. Sebuah aplikasi berjalan sempurna di laptop, lalu rusak di server karena library yang hilang, versi OS yang berbeda, atau file konfigurasi yang tidak diketahui siapa pun. Docker ada untuk mengakhiri percakapan itu: ia mengemas aplikasi beserta semua yang dibutuhkannya, sehingga berjalan sama di mana saja, setiap saat.
Dokumentasi Docker sendiri menyebut Docker sebagai "an open platform for developing, shipping, and running applications" (platform terbuka untuk mengembangkan, mengirim, dan menjalankan aplikasi). Satu kalimat itu menyembunyikan satu dekade rekayasa yang diam-diam mengubah cara software dibangun. Inilah penjelasan tentang apa itu Docker, perbedaan container dengan virtual machine, dan mengapa developer mengadopsinya begitu cepat.
Poin Penting
Docker mengemas aplikasi beserta semua dependensinya ke dalam container yang berjalan sama di laptop, server, atau cloud, mengakhiri masalah "di komputer saya jalan".
Container adalah proses terisolasi yang berbagi kernel OS host, sehingga menyala dalam hitungan detik dan memakai sumber daya jauh lebih sedikit dibanding virtual machine yang membawa OS penuh sendiri.
Image Docker adalah template read-only yang dibangun dari Dockerfile; Docker Hub adalah registry terbesar di dunia untuk berbagi image (Docker, diakses 2026-10-22).
Docker Compose memungkinkan Anda mendefinisikan dan menjalankan aplikasi multi-container (aplikasi + database + cache) dari satu file YAML dengan satu perintah.
Adopsinya nyaris universal: Docker melonjak 17 poin persentase dalam satu tahun hingga 71% pemakaian dalam Survei Developer Stack Overflow 2025 (lebih dari 49.000 responden).
Sebenarnya Apa Itu Docker
Docker memakai arsitektur client-server. Client `docker` tempat Anda mengetik perintah berbicara dengan proses yang berjalan terus-menerus bernama Docker daemon (`dockerd`), yang mengerjakan pekerjaan berat: membangun, menjalankan, dan mendistribusikan container. Keduanya berkomunikasi lewat REST API melalui UNIX socket atau antarmuka jaringan (Docker, diperbarui 2026-09-07).
Docker ditulis dalam bahasa pemrograman Go dan memanfaatkan namespace kernel Linux untuk memahat ruang kerja terisolasi tempat container berjalan. Isolasi itulah seluruh triknya: setiap container merasa memiliki filesystem, jaringan, dan ruang proses sendiri, padahal sebenarnya berbagi kernel host di bawahnya.
Bagi kebanyakan pemula, pintu masuknya adalah Docker Desktop, aplikasi untuk Mac, Windows, atau Linux yang menggabungkan daemon, client, Docker Compose, dukungan Kubernetes, dan credential helper dalam satu installer. Soal lisensi: Docker Desktop gratis untuk penggunaan pribadi, pendidikan, proyek open source non-komersial, dan bisnis kecil (kurang dari 250 karyawan dan pendapatan tahunan kurang dari 10 juta dolar AS); organisasi yang lebih besar perlu berlangganan berbayar, sementara proyek open source Docker Engine dan Moby tetap memakai ketentuan yang sudah ada tanpa perubahan (Docker, diperbarui 2026-09-28).
Container vs Virtual Machine
Sebelum Docker, cara standar mengisolasi software adalah virtual machine (VM). Sebuah VM meniru seluruh hardware dan mem-boot sistem operasi tamu yang penuh: kernel sendiri, driver, program, dan aplikasi, hanya untuk mengisolasi satu aplikasi. Seperti kata dokumentasi Docker, "spinning up a VM only to isolate a single application is a lot of overhead" (menyalakan VM hanya untuk mengisolasi satu aplikasi adalah overhead yang besar).
Container menempuh pendekatan sebaliknya. Container adalah proses terisolasi yang berbagi kernel OS host alih-alih mem-boot OS sendiri. Dokumentasi container IBM menjelaskannya dengan baik: "A container is an app that is packaged with all its dependencies so that the app can be moved between environments and run without changes. Unlike virtual machines, containers don't virtualize a device, its operating system, and the underlying hardware."
Aspek | Container | Virtual Machine |
|---|---|---|
Detail | Berbagi kernel OS host; hanya mengemas aplikasi, runtime, library, dan pengaturan | Mem-boot OS tamu penuh dengan kernel, driver, dan program sendiri |
Waktu nyala | Hitungan detik | Hitungan menit |
Ukuran | Megabyte | Gigabyte |
Kepadatan | Jauh lebih banyak yang bisa berjalan di satu host sekaligus | Lebih sedikit per host karena overhead OS |
Portabilitas | "The container that runs on your development machine will work the same way in a data center or anywhere in the cloud" (Docker) | Portabel sebagai disk image, tapi lebih berat untuk dipindahkan |
Kedua teknologi ini bukan musuh. Penyedia cloud rutin menjalankan VM sebagai mesin yang dipesan dan memadatkan banyak container di dalamnya, meningkatkan utilisasi sumber daya (Docker). Red Hat mencatat satu keterbatasan yang perlu diketahui: VM bisa dimigrasi antar host sambil tetap berjalan, tapi container harus dihentikan dulu sebelum dipindahkan.
Cara Container Dibangun: Image, Dockerfile, dan Registry
Tiga konsep menopang seluruh alur kerja Docker: image, Dockerfile, dan registry.
Image adalah, dalam kata-kata Docker, "a read-only template with instructions for creating a Docker container" (template read-only berisi instruksi untuk membuat container Docker). Anda membangun image sendiri dengan menulis Dockerfile, file teks biasa di mana setiap instruksi menciptakan satu layer image. Saat Anda membangun ulang, hanya layer yang berubah yang dibangun ulang, itulah yang membuat image tetap kecil, ringan, dan cepat dikirim (Docker).
Container hanyalah instance yang bisa dijalankan dari sebuah image. Anda bisa membuat, menyalakan, menghentikan, memindahkan, atau menghapusnya lewat Docker API atau CLI. Model mentalnya familier: image adalah kelasnya, container adalah objeknya; Dockerfile adalah resepnya, image adalah kuenya, container adalah potongan yang benar-benar disajikan.
Untuk berbagi image, Anda mengunggahnya ke registry, "a place to store, retrieve, and share container images" (tempat menyimpan, mengambil, dan berbagi image container) yang bisa publik atau privat (IBM). Yang terbesar adalah Docker Hub, yang disebut Docker sebagai "the world's largest container registry" (registry container terbesar di dunia) (Docker, diperbarui 2026-09-03). Ia menawarkan repositori publik tanpa batas, repositori privat, webhook, integrasi GitHub dan Bitbucket, serta build otomatis. Paket gratis Docker Personal memberi repositori publik tanpa batas, satu repositori privat, dan 100 pull image per jam untuk pengguna yang login (docker.com, 2026-08-19). Docker Hub modern juga menyimpan lebih dari sekadar image: Helm chart, SBOM, tanda tangan digital, data provenance, laporan kerentanan, dan bahkan model bahasa besar kini tinggal di sana.
Docker Compose: Satu File, Satu Perintah, Seluruh Stack
Aplikasi nyata jarang hanya satu container. Aplikasi web tipikal butuh aplikasinya sendiri, database, dan mungkin cache atau message queue. Docker Compose adalah tool untuk itu: "a tool for defining and running multi-container applications" (tool untuk mendefinisikan dan menjalankan aplikasi multi-container) (Docker, diperbarui 2026-05-28).
Anda mendeskripsikan service, jaringan, dan volume seluruh stack dalam satu file YAML, lalu menjalankan semuanya dengan satu perintah. Compose juga menangani siklus hidup: menyalakan, menghentikan, dan membangun ulang service, memeriksa status yang berjalan, mengalirkan log, atau menjalankan perintah sekali jalan. Ia bekerja sama di development, testing, staging, dan production, artinya file Compose yang Anda jalankan di laptop adalah bentuk stack yang sama yang dikirim ke server. Simetri itulah sebagian besar alasan mengapa tim-tim mengadopsinya.
Sejarah Singkat: Dari Tool Internal dotCloud hingga Standar Industri
Docker bermula sebagai pipa internal, bukan produk. Pada 2013, perusahaan bernama dotCloud, yang didirikan Solomon Hykes di Prancis sebelum ia pindah ke San Francisco Bay Area pada akhir 2010 untuk menggalang dana, merilis teknologi container internalnya sebagai open source dengan nama Docker (The New Stack).
Rilis open source itu meledak. Docker tumbuh dari satu proyek menjadi apa yang disebut Hykes "a constellation of many different projects, including containerD, LinuxKit, SwarmKit, and the Moby Project" (konstelasi banyak proyek berbeda, termasuk containerD, LinuxKit, SwarmKit, dan Moby Project). containerD, runtime container intinya, akhirnya didonasikan ke Cloud Native Computing Foundation, dan Kubernetes menjadikannya cara bawaan menjalankan container dalam orkestrasi skala besar. Efek ekosistem itulah yang membuat Docker berhenti menjadi sekadar tool dan menjadi infrastruktur.
Mengapa Developer Menyukainya: Kisah Adopsi
Bukti paling jelas dari dampak Docker adalah seberapa cepat seluruh industri menstandarkannya. Survei Developer Stack Overflow 2025, edisi tahunan kelima belas dengan lebih dari 49.000 responden dari 177 negara yang mencakup 314 teknologi, menemukan bahwa "Docker has moved from a popular tool to a near-universal one. After years of growth, it experienced a +17 percentage point jump in usage from 2024 to 2025 (71%) among all cloud development and infrastructure technologies, followed by npm (57%) and AWS (43%)." (Stack Overflow, diumumkan 29 Juli 2025).
Lonjakan itu terjadi karena container menyelesaikan masalah yang dirasakan developer setiap hari:
Reproduksibilitas. Container membawa dependensinya, sehingga staging cocok dengan production dan meng-onboard rekan baru berarti menjalankan satu perintah alih-alih panduan setup setengah hari.
Kecepatan. Menyalakan container butuh hitungan detik, sehingga siklus dev, tes, ubah, jalankan ulang, tetap cepat.
Kepadatan dan biaya. Lebih banyak container muat di satu host dibanding VM, itulah mengapa tagihan cloud mengecil untuk workload yang sama (Red Hat).
Ekosistem. Dengan jutaan image publik di Docker Hub, Anda hampir tidak pernah mulai dari nol: image resmi untuk Python, Node, Postgres, Redis, dan hampir setiap tool tinggal satu `docker pull`.
Kalau Anda ingin melihat apa yang benar-benar dibangun dan dikirim developer dengan container, video sinyal repo singkat di RepoManiac rutin menampilkan proyek open source berbasis container yang layak dilirik.
Pertanyaan yang Sering Diajukan
Apakah Docker gratis dipakai?
Docker Engine open source gratis. Docker Desktop, aplikasi all-in-one, gratis untuk penggunaan pribadi, pendidikan, proyek open source non-komersial, dan bisnis kecil (kurang dari 250 karyawan dan pendapatan tahunan kurang dari 10 juta dolar AS). Organisasi dan entitas pemerintah yang lebih besar perlu berlangganan berbayar (Docker).
Apakah Docker menggantikan virtual machine?
Tidak persis. Container lebih ringan dan menyala lebih cepat, tapi VM memberikan isolasi lebih kuat karena masing-masing menjalankan kernel sendiri, dan migrasi langsung antar host adalah trik khusus VM. Dalam praktik keduanya digabung: VM menyediakan mesinnya, container memadatkan aplikasinya (Docker).
Saya perlu Docker Desktop, atau cukup engine-nya saja?
Di Linux Anda bisa menjalankan Docker Engine langsung tanpa aplikasi desktop. Di Mac dan Windows, Docker Desktop (atau alternatifnya) menyediakan VM Linux yang dibutuhkan engine di balik layar. Untuk belajar dan proyek sampingan, tier gratis Desktop adalah awal paling sederhana.
Apakah Docker sulit dipelajari?
Dasarnya sungguh sederhana: satu Dockerfile, satu `docker build`, satu `docker run`. Kurva belajar datang belakangan, pada networking, volume, setup Compose multi-container, dan orkestrasi production. Mulailah dengan satu container dan kembangkan dari sana.
Intinya
Docker mengubah "di komputer saya jalan" dari bahan lelucon menjadi masalah yang bisa diselesaikan: kemas aplikasi beserta dependensinya, berbagi kernel host alih-alih mem-boot OS, dan jalankan container yang sama di mana saja. Dari tool internal dotCloud yang dirilis open source pada 2013 hingga dipakai 71% developer cloud pada 2025, container menang karena cepat, ringan, dan bisa direproduksi. Kalau Anda belum pernah menjalankannya, pull sebuah image resmi, jalankan, dan saksikan seluruh aplikasi menyala dalam hitungan detik. `docker run` pertama itulah biasanya momen semuanya klik.
*Baca artikel ini dalam bahasa Inggris: Docker Explained: What Containers Are and Why Developers Love Them.*
