容器化技术已成为现代应用部署的标准。本文将介绍 Docker 和 Kubernetes 的核心概念与实践。
Docker 基础
Dockerfile 最佳实践
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
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/main.js"]
Kubernetes 核心概念
1. Pod
最小部署单元:
apiVersion: v1
kind: Pod
metadata:
name: my-app
spec:
containers:
- name: app
image: my-app:latest
ports:
- containerPort: 3000
2. Deployment
管理 Pod 副本:
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: app
image: my-app:latest
总结
掌握 Docker 和 Kubernetes 是现代开发者的必备技能,它们能大大简化应用的部署和运维工作。