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

Docker for Developers: Complete Guide

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 --from=builder /app/dist ./dist COPY --from=builder /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