Materi/Docker & Deployment
🐳

Docker & Deployment

Advanced+450 XP

Chapter

Pengenalan Docker

Docker adalah platform untuk mengemas, mendistribusikan, dan menjalankan aplikasi dalam container.

Apa itu Container?

Container adalah unit standar software yang mengemas kode dan semua dependensinya, sehingga aplikasi berjalan konsisten di environment manapun.

┌─────────────────────────────────────┐
│           Host OS (Linux)            │
├──────────────┬──────────────────────┤
│  Container A │    Container B       │
│  Node.js App │    Python App        │
│  + deps      │    + deps            │
└──────────────┴──────────────────────┘

Docker vs VM

Perintah Docker Dasar

# Pull image dari Docker Hub
docker pull node:18-alpine

# Lihat image yang ada
docker images

# Jalankan container
docker run -p 3000:3000 nama-image

# Lihat container yang berjalan
docker ps

# Stop container
docker stop container-id

# Remove container
docker rm container-id

# Lihat logs
docker logs container-id

Dockerfile

# Base image
FROM node:18-alpine

# Working directory
WORKDIR /app

# Copy package files
COPY package*.json ./

# Install dependencies
RUN npm install --production

# Copy source code
COPY . .

# Build (untuk Next.js)
RUN npm run build

# Expose port
EXPOSE 3000

# Jalankan aplikasi
CMD ["npm", "start"]

Build & Run

# Build image
docker build -t codebook-app .

# Jalankan dengan environment variables
docker run -p 3000:3000 \
  -e MONGODB_URI=... \
  -e JWT_SECRET=... \
  codebook-app
DockerVirtual Machine
Boot timeDetikMenit
SizeMBGB
PerformanceNativeOverhead
IsolationProcessFull OS