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
- Use specific base image versions
- Minimize layer count
- Use .dockerignore
- Run as non-root user
- 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.