DevOpsIntermediate
14 min readOct 28, 2024
Docker for Developers: Complete Guide
Learn Docker fundamentals, best practices for containerizing applications, and multi-stage builds.
R
Rithy Tep
Author
Introduction
Docker has revolutionized application deployment. Learn how to containerize your applications effectively.
1. Docker Basics
Dockerfile Example
FROM node:18-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . EXPOSE 3000 CMD ["npm", "start"]
2. Multi-Stage Builds
# Build stage FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci COPY . . RUN npm run build # Production stage FROM node:18-alpine WORKDIR /app COPY /app/dist ./dist COPY /app/node_modules ./node_modules EXPOSE 3000 CMD ["node", "dist/index.js"]
3. Docker Compose
version: '3.8' services: app: build: . ports: - "3000:3000" environment: - DATABASE_URL=postgresql://db:5432/myapp depends_on: - db db: image: postgres:15-alpine environment: POSTGRES_DB: myapp POSTGRES_PASSWORD: password volumes: - postgres_data:/var/lib/postgresql/data volumes: postgres_data:
4. Best Practices
- •Use .dockerignore
- •Minimize layer count
- •Use specific image tags
- •Don't run as root
- •Use health checks
Conclusion
Docker simplifies deployment and ensures consistency across environments.
#Docker#DevOps#Containers#Deployment