Apa Itu Docker?
Docker adalah platform containerization yang memungkinkan Anda menjalankan aplikasi dalam environment yang terisolasi dan reproducible, menghilangkan masalah "works on my machine".
Instalasi
Download Docker Desktop dari docker.com untuk Windows/Mac. Di Linux, ikuti instruksi spesifik distro. Verifikasi dengan docker --version dan docker run hello-world.
Konsep Dasar
- Image – template read-only untuk container
- Container – instance yang berjalan dari image
- Dockerfile – instruksi untuk membuild image
- Registry – repository untuk menyimpan image (Docker Hub, ECR)
Membuat Dockerfile untuk Node.js App
Gunakan multi-stage build: stage pertama untuk build (dengan devDependencies), stage kedua untuk production (hanya runtime). Ini menghasilkan image yang jauh lebih kecil.
Docker Compose untuk Multi-Container
Buat docker-compose.yml yang mendefinisikan services (app, database, redis), networks, dan volumes. Satu perintah docker compose up menjalankan semua service.
Best Practices
- Gunakan .dockerignore untuk exclude file tidak perlu
- Pin versi base image (node:18-alpine, bukan node:latest)
- Jangan jalankan container sebagai root
- Health check untuk semua service