6月2日 23:43
Docker 怎么配合微服务架构?一个服务一个容器的实践方法
微服务架构的核心是一个服务一个进程——Docker 的容器天然就是为此设计的。每个微服务打包成独立镜像,独立部署、独立扩缩容。
一个服务一个容器
每个服务有自己的 Dockerfile,独立构建和部署。
服务间通信
同一 Docker 网络内,容器用服务名互相访问(http://user-service:3000),Docker 内置 DNS 自动解析。跨主机通信需要额外方案:Docker Swarm 用 Overlay 网络,Kubernetes 用 Service。
扩缩容
Compose 的 --scale 适合开发测试。生产环境用 K8s 的 HPA 自动扩缩容。
配置管理
不要把配置写死在镜像里。用环境变量注入,不同环境用不同 .env 文件。
Docker 微服务的局限
Docker Compose 适合 5-10 个服务的项目。超过 10 个服务应该用 Kubernetes——它提供自动扩缩容、滚动更新、服务发现、健康检查等编排能力。