Chapter
Docker adalah platform untuk mengemas, mendistribusikan, dan menjalankan aplikasi dalam 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 │
└──────────────┴──────────────────────┘# 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# 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 image
docker build -t codebook-app .
# Jalankan dengan environment variables
docker run -p 3000:3000 \
-e MONGODB_URI=... \
-e JWT_SECRET=... \
codebook-app| Docker | Virtual Machine | |
|---|---|---|
| Boot time | Detik | Menit |
| Size | MB | GB |
| Performance | Native | Overhead |
| Isolation | Process | Full OS |