Docker sudah menjadi skill wajib bagi developer modern. Tapi banyak yang merasa Docker itu rumit. Artikel ini akan menjelaskan Docker dengan bahasa yang mudah dipahami.
Apa itu Docker?
Bayangkan Docker seperti kontainer pengiriman barang. Setiap kontainer berisi semua yang dibutuhkan aplikasi untuk berjalan — kode, dependencies, konfigurasi. Kontainer ini bisa dijalankan di mana saja dengan hasil yang sama.
Kenapa Pakai Docker?
- "It works on my machine" — Masalah klasik ini hilang dengan Docker
- Konsistensi — Development, staging, dan production environment sama persis
- Isolasi — Setiap service berjalan di kontainernya sendiri
- Skalabilitas — Mudah scale up dan down
Instalasi
macOS
brew install --cask docker
Ubuntu
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
Konsep Dasar
Image vs Container
- Image = blueprint/cetak biru (seperti class di OOP)
- Container = instance yang berjalan (seperti object di OOP)
Dockerfile
File yang berisi instruksi untuk membuat image:
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
Docker Compose
Untuk menjalankan multiple container sekaligus:
services:
app:
build: .
ports:
- "3000:3000"
db:
image: postgres:17
environment:
POSTGRES_PASSWORD: secret