Web Development
Docker & Deployment
Containerize aplikasi dengan Docker dan deploy ke VPS.
Status Membaca:Belum Dibaca
Daftar Bab (2)
Bab 1 dari 2
Pengenalan Docker
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
Docker
Virtual Machine
|--|--------|-----------------|
Boot time
Detik
Menit
Size
MB
GB
Performance
Native
Overhead
Isolation
Process
Full OS
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-idDockerfile
# 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