📦 Container & Docker

Level: Intermediate

Container adalah teknologi untuk mengemas aplikasi beserta dependensinya agar bisa dijalankan di mana saja secara konsisten. Docker adalah platform populer untuk membuat, mengelola, dan menjalankan container. Bayangkan container seperti kontainer kapal: apapun isinya, bentuk luar sama sehingga mudah dipindahkan ke kapal manapun.

📖 Konsep Dasar Container

🔄 VM vs Container

Aspek VM Container
OS Butuh OS lengkap Berbagi kernel host
Startup Lambat (menit) Cepat (detik)
Resource Lebih berat Ringan
Kegunaan Legacy apps, isolasi penuh Microservices, deployment cepat

⚙️ Workflow Docker

  1. Tulis Dockerfile → definisi image.
  2. Build image → docker build.
  3. Jalankan container → docker run.
  4. Bagikan image → push ke Docker Hub/registry.

🔹 Contoh Dockerfile

# Dockerfile
FROM node:18
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]

🛠️ Praktik Kecil

Coba jalankan aplikasi Node.js sederhana dengan Docker:

  1. Buat Dockerfile seperti contoh di atas.
  2. Build image: docker build -t myapp .
  3. Jalankan container: docker run -p 3000:3000 myapp
  4. Akses aplikasi di http://localhost:3000.

🎮 Mini Challenge

Buat aplikasi sederhana (misalnya To-Do API) lalu:

Tugas tambahan: Gunakan docker-compose untuk menjalankan aplikasi + database (misalnya Node.js + MongoDB) dalam beberapa container.