Apa Itu Docker?
Docker adalah platform untuk membangun, mengemas, mendistribusikan, dan menjalankan aplikasi dalam container. Container menjalankan proses terisolasi di atas kernel Linux (atau VM ringan di Windows/macOS), sehingga aplikasi + dependensi bisa dipindahkan antar server dengan perilaku yang konsisten.
Konsep inti
-
Image: template read-only berisi filesystem aplikasi + dependensi. Image dibuat dari
Dockerfiledan tersimpan di registry. -
Container: instance dari image yang sedang berjalan (punya layer writable).
-
Registry: tempat menyimpan image (contoh umum: Docker Hub / private registry).
-
Docker Engine: layanan (daemon) + CLI yang mengelola image, container, network, dan volume.
Komponen operasional penting
-
Network: menghubungkan container (bridge, host, overlay untuk cluster).
-
Volume: penyimpanan persisten di luar lifecycle container (untuk database, upload, dsb).
-
Docker Compose: mendefinisikan dan menjalankan aplikasi multi-container (web + db + cache) dengan satu file YAML.
Kelebihan utama
-
Portabilitas: jalan konsisten dari laptop → staging → production.
-
Isolasi: dependensi dan proses terpisah per aplikasi.
-
Deployment cepat: pull image dan run, rollback mudah dengan tag image.
Batasan dan catatan
-
Container bukan VM penuh: berbagi kernel host, jadi isolasi tidak setara hypervisor.
-
Memberi user akses ke group
dockersetara hak root (risk besar jika tidak dikontrol). -
Untuk kebutuhan keamanan lebih ketat, pertimbangkan rootless mode dan hardening host.
Use case umum
-
Packaging aplikasi web/API, worker, dan tool automation.
-
Menjalankan stack seperti Nginx + App + DB dengan Compose.
-
CI/CD: build image, push ke registry, deploy ke server/cluster.
Kalau kamu mau, saya bisa buat versi rangkuman ini khusus untuk posting (lebih pendek) + contoh diagram alur Dockerfile → Image → Registry → Container.