Docker容器化部署实战:从镜像构建到Kubernetes编排的完整流程
详解Dockerfile编写最佳实践、多阶段构建优化及K8s部署配置,实现高效容器化交付
一、Dockerfile最佳实践
1.1 多阶段构建
# 构建阶段
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
# 运行阶段
FROM alpine:latest
RUN apk --no-cache add ca-certificates
WORKDIR /root/
COPY --from=builder /app/main .
CMD ["./main"]
1.2 层缓存优化
# 先复制依赖文件(变更频率低)
COPY package*.json ./
RUN npm ci --only=production
# 再复制应用代码(变更频率高)
COPY . .
二、Kubernetes部署配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:v1.0
ports:
- containerPort: 8080
三、FAQ
Q1: 如何减小Docker镜像体积?
A: 使用多阶段构建、选择alpine基础镜像、清理缓存文件。
Q2: 容器健康检查如何配置?
A: 使用HEALTHCHECK指令或K8s的livenessProbe/readinessProbe。
需要专业的 软件开发 服务?
邦赢网络(滕州市邦赢网络科技有限公司,上海邦赢广告传媒有限公司全资子公司)专注小程序、APP、企业软件、IoT 平台的全栈定制开发,11 年互联网研发经验,全国多地业务联络办事处。
📞 13465955000 ✉ service@bangying360.com
立即咨询方案 →