tutorial, docker,

Pengenalan Docker: Apa itu Container dan Mengapa Developer Harus Tahu?

Kiki/🎮🍉⌨️🍩💻 Kiki/🎮🍉⌨️🍩💻 Aug 29, 2026 · 4 mins read
Pengenalan Docker: Apa itu Container dan Mengapa Developer Harus Tahu?
Share this

Pernah mengalami situasi “di komputer saya jalan, kok di server error?” — ini adalah salah satu masalah paling klasik dalam dunia software development. Docker lahir untuk menyelesaikan masalah ini. Dengan Docker, aplikasi berjalan dalam lingkungan yang identik di mana saja: laptop developer, server staging, maupun production.

Di artikel pertama seri Docker ini, kita kenali dulu konsep dasarnya sebelum masuk ke praktik.


Apa itu Docker?

Docker adalah platform open-source untuk membangun, mengirim, dan menjalankan aplikasi dalam container. Container adalah unit yang mengemas kode aplikasi beserta semua dependensinya — runtime, library, konfigurasi sistem — menjadi satu paket yang portabel.

Docker dirilis pada 2013 dan sejak itu menjadi salah satu tool paling penting dalam ekosistem DevOps modern.


Container vs Virtual Machine

Sering kali Docker dibandingkan dengan Virtual Machine (VM). Keduanya sama-sama mengisolasi aplikasi, tapi cara kerjanya sangat berbeda.

Virtual Machine

  • Menjalankan OS penuh di atas hypervisor (VMware, VirtualBox)
  • Booting membutuhkan waktu menit
  • Menggunakan RAM dan storage gigabyte
  • Isolasi sangat kuat di level hardware

Container

  • Berbagi kernel OS host, hanya mengemas library dan dependencies
  • Startup dalam hitungan detik bahkan milidetik
  • Menggunakan megabyte saja
  • Isolasi di level proses menggunakan fitur Linux: namespaces dan cgroups
Virtual Machine:                    Container:
┌─────────────────────┐             ┌─────────────────────┐
│  App A   │  App B   │             │  App A   │  App B   │
├──────────┼──────────┤             ├──────────┼──────────┤
│  Guest   │  Guest   │             │ Libs A   │ Libs B   │
│  OS      │  OS      │             ├──────────┴──────────┤
├──────────┴──────────┤             │   Docker Engine     │
│     Hypervisor      │             ├─────────────────────┤
├─────────────────────┤             │      Host OS        │
│      Host OS        │             ├─────────────────────┤
├─────────────────────┤             │      Hardware       │
│      Hardware       │             └─────────────────────┘
└─────────────────────┘

Konsep Utama Docker

Image

Docker Image adalah blueprint read-only dari container. Image berisi OS base, runtime, dependencies, dan aplikasimu. Image dibangun dari file bernama Dockerfile.

Analoginya: Image = resep masakan, Container = masakan yang sudah jadi.

Container

Container adalah instance yang berjalan dari sebuah Image. Dari satu Image kamu bisa menjalankan banyak container sekaligus.

Dockerfile

File teks berisi instruksi untuk membangun sebuah Image. Setiap baris instruksi menjadi satu layer di Image.

Docker Hub

Registry publik tempat menyimpan dan berbagi Docker Image. Seperti GitHub tapi untuk Image. Tersedia ribuan Image resmi: Node.js, Nginx, PostgreSQL, Redis, dll.

Docker Compose

Tool untuk mendefinisikan dan menjalankan aplikasi multi-container menggunakan file docker-compose.yml. Sangat berguna untuk development environment.


Mengapa Docker Penting?

1. Konsistensi Environment

Tidak ada lagi perbedaan antara “jalan di lokal” vs “jalan di server”. Container memastikan environment identik di semua tempat.

2. Isolasi Dependensi

Proyek A butuh Node.js 18, Proyek B butuh Node.js 20 — tidak ada konflik. Masing-masing jalan di container terpisah.

3. Onboarding Developer Baru Lebih Cepat

Daripada instruksi setup yang panjang, cukup docker compose up dan semua service langsung berjalan.

4. Deployment yang Mudah

Build sekali, deploy di mana saja — laptop, cloud, on-premise — selama Docker terinstal.

5. Skalabilitas

Container mudah di-scale horizontal. Butuh lebih banyak instance? Jalankan lebih banyak container.


Instalasi Docker

Windows & macOS

Download Docker Desktop dari docker.com/products/docker-desktop. Docker Desktop sudah include Docker Engine, Docker CLI, dan Docker Compose.

Linux (Ubuntu/Debian)

# Hapus versi lama jika ada
sudo apt remove docker docker-engine docker.io

# Install Docker
curl -fsSL https://get.docker.com | sh

# Tambahkan user ke group docker (agar bisa jalankan tanpa sudo)
sudo usermod -aG docker $USER

# Logout dan login kembali, lalu verifikasi
docker --version
docker compose version

Hello World Docker

Setelah Docker terinstal, coba jalankan container pertama:

docker run hello-world

Docker akan:

  1. Mengecek apakah Image hello-world ada di lokal
  2. Jika tidak ada, mengunduh dari Docker Hub
  3. Menjalankan container dari Image tersebut
  4. Menampilkan pesan dan container berhenti
# Perintah dasar lainnya
docker images          # lihat semua image di lokal
docker ps              # lihat container yang sedang berjalan
docker ps -a           # lihat semua container termasuk yang sudah berhenti
docker pull nginx      # unduh image nginx tanpa menjalankannya

Kesimpulan

Docker mengubah cara kita membangun, mendistribusikan, dan menjalankan aplikasi. Dengan container, masalah “works on my machine” menjadi masa lalu. Di artikel berikutnya, kita akan masuk ke praktik — membuat Dockerfile dan membangun Image pertama kamu.

Kiki/🎮🍉⌨️🍩💻
Written by Kiki/🎮🍉⌨️🍩💻
hello I'm friend K.