Docker untuk Developer: Dari Nol Sampai Container Pertama Jalan

Bingung memulai Docker? Artikel ini memandu kamu step by step: dari install sampai aplikasi Node.js berjalan di dalam container.
Docker untuk Developer: Dari Nol Sampai Container Pertama Jalan

Kenapa Docker?

Docker memungkinkan kamu menjalankan aplikasi di dalam container yang terisolasi — lingkungan yang sama persis di laptop, staging, maupun production. Tidak ada lagi "works on my machine".

Install Docker

Download Docker Desktop dari docker.com untuk Mac atau Windows. Di Linux:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Verifikasi instalasi:

docker --version
docker run hello-world

Konsep Dasar

  • Image: blueprint dari container (seperti class di OOP).
  • Container: instance yang berjalan dari sebuah image (seperti object).
  • Dockerfile: instruksi untuk membangun image.
  • Registry: tempat menyimpan dan berbagi image (Docker Hub).

Membuat Dockerfile untuk Node.js

FROM node:22-alpine

WORKDIR /app

COPY package*.json ./
RUN npm ci --only=production

COPY . .

EXPOSE 3000
CMD ["node", "index.js"]

Build dan Jalankan

# Build image
docker build -t my-node-app .

# Jalankan container
docker run -p 3000:3000 my-node-app

# Lihat container yang berjalan
docker ps

# Hentikan container
docker stop <container_id>

Docker Compose untuk Multi-Container

services:
  app:
    build: .
    ports: ["3000:3000"]
    environment:
      - DATABASE_URL=postgres://user:pass@db:5432/mydb
    depends_on: [db]
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_PASSWORD: pass
      POSTGRES_USER: user
      POSTGRES_DB: mydb
    volumes:
      - pgdata:/var/lib/postgresql/data

volumes:
  pgdata:
docker compose up -d      # jalankan di background
docker compose down       # hentikan semua service
docker compose logs -f    # lihat log real-time

Langkah Selanjutnya

Setelah nyaman dengan dasar-dasar ini, eksplorasi multi-stage builds untuk memperkecil ukuran image production, dan Docker networking untuk komunikasi antar-container yang lebih kompleks.

Butuh Solusi Digital Custom?

Kami siap membuatkan solusi digital sesuai kebutuhan bisnis Anda.

Konsultasi Gratis