Docker
Kubernetes
DevOps
Backend
Cloud Computing
Ask anything about this article
Hi! I've read this article.
What would you like to know?
@farhan
You don't need to be a DevOps engineer to use Docker and Kubernetes. As a full-stack developer, understanding containers will make you 10x more valuable.
dockerfile# Multi-stage build for a Next.js app
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
EXPOSE 3000
CMD ["node", "server.js"]
yaml# docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "3000:3000"
environment:
- DATABASE_URL=mongodb://mongo:27017/myapp
- REDIS_URL=redis://redis:6379
depends_on:
- mongo
- redis
volumes:
- .:/app
- /app/node_modules
mongo:
image: mongo:7
ports:
- "27017:27017"
volumes:
- mongo_data:/data/db
redis:
image: redis:7-alpine
ports:
- "6379:6379"
volumes:
mongo_data:
yaml# deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: myregistry/my-app:latest
ports:
- containerPort: 3000
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: app-secrets
key: database-url
yamlapiVersion: v1
kind: Service
metadata:
name: my-app-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 3000
selector:
app: my-app
| Task | Docker | Kubernetes |
|---|---|---|
| Build | %%INLINECODE_0%% | N/A |
| Run | %%INLINECODE_1%% | %%INLINECODE_2%% |
| Logs | %%INLINECODE_3%% | %%INLINECODE_4%% |
| Shell | %%INLINECODE_5%% | %%INLINECODE_6%% |
| Scale | Docker Compose | %%INLINECODE_7%% |
| Stop | %%INLINECODE_8%% | %%INLINECODE_9%% |
latest tag in productionDocker and Kubernetes aren't just for DevOps. They're essential skills for any modern developer.