Skip to main content
开发环境跑起来不算完,生产环境有另一套标准。本文是一份落地指南:检查清单、镜像与容器规范、单机部署的边界,以及走向 Kubernetes 的路径。

生产就绪检查清单

上线前对着这五类过一遍。 镜像 容器 日志 资源 安全

镜像规范

镜像是发布的单元,规范要从源头抓起。
别忘了 .dockerignore,它决定构建上下文里有什么:
.dockerignore 有两个作用:减小构建上下文加快构建;防止 .env 这类敏感文件被打进镜像。

容器运行规范

容器怎么跑和镜像怎么建同样重要,三条铁律:重启策略必配、资源限额必配、日志轮转必配。
unless-stopped 表示异常退出会拉起、手动 stop 不会。不限内存的容器能把宿主机拖垮,不配轮转的日志能把磁盘写满。细节参考 Docker 资源限制Docker 日志与监控

单机部署的边界

单机 Docker 加 Compose 能走很远,但要知道边界。适合单机的场景:中小团队内部系统、流量稳定的单体应用、演示测试环境,几台机器以内 Compose 完全够用。 出现以下信号就该考虑编排了:
  • 单机资源到顶,需要多机调度
  • 要求零停机发布和自动回滚
  • 服务数量变多,需要服务发现和负载均衡
  • 要求故障自愈,机器挂了容器自动迁移
编排解决的是「多机、多实例、高可用」问题。应用本身就是单实例的话,上 Kubernetes 是过度设计。

从 Compose 走向 Kubernetes

Compose 的概念在 Kubernetes 里都有对应物,迁移没有想象中难。 迁移路径建议分步走:先把 Compose 服务拆成 Deployment 和 Service,再把有状态部分迁到 PVC,最后接 Ingress 对外暴露。详细概念见 Kubernetes 工作负载

CI/CD 中的镜像构建

CI/CD 流水线的镜像环节记住三句话:构建即打 tag、推送仓库、不可变发布。
不可变发布的意思是:一个 tag 对应一个不变的镜像,要改就发新版本。
不可变发布让回滚极其简单:重新部署旧 tag 就行。这也是生产禁止 latest 的原因——它永远指向「最新的什么」,无法回滚。

与 Kubernetes 系列教程的衔接

本文是 Docker 系列的收尾。想继续深入生产级容器化,推荐按这个顺序读 Kubernetes 系列:Kubernetes 基础 入门核心概念,Kubernetes 工作负载 掌握 Deployment 与 StatefulSet,最后读 Kubernetes 生产实践 对照集群环境的生产清单。

延伸阅读