Docker Essentials for Web Developers

Learn Docker basics and how to containerize your web applications effectively.

10 min read
Technology Programming

Docker Essentials for Web Developers

Docker simplifies development and deployment. Here’s everything you need to know.

What is Docker?

Docker packages applications into containers that run consistently everywhere.

Basic Dockerfile

FROM node:18-alpine

WORKDIR /app

COPY package*.json ./
RUN npm install

COPY . .

EXPOSE 3000
CMD ["npm", "start"]

Docker Compose

Define multi-container applications:

version: '3.8'

services:
  app:
    build: .
    ports:
      - '3000:3000'
    depends_on:
      - db

  db:
    image: postgres:15
    environment:
      POSTGRES_PASSWORD: secret

Common Commands

docker build -t myapp .
docker run -p 3000:3000 myapp
docker ps
docker logs <container-id>
docker exec -it <container-id> sh

Best Practices

  1. Use specific base image versions
  2. Minimize layer count
  3. Use .dockerignore
  4. Run as non-root user
  5. Use multi-stage builds

Multi-stage Builds

Optimize image size:

# Build stage
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

# Production stage
FROM node:18-alpine
WORKDIR /app
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/index.js"]

Conclusion

Docker streamlines development workflows and ensures consistency across environments.