type
status
date
slug
summary
category
tags
create_time
Aug 10, 2025 08:47 AM
icon
password
my_create_time
📝 前言
在容器技术的早期阶段,Docker 以其简单易用的特性迅速成为开发者的“标配”,从构建、打包到运行应用,几乎一条命令就能搞定。
然而,随着业务规模扩大、部署环境复杂化,仅依靠单机 Docker 已经难以满足弹性伸缩、高可用与自动化运维的需求。
为了解决多容器管理问题,Docker Compose 出现作为中间过渡方案,而最终 Kubernetes(K8s) 则成为集群编排的终极解决方案。
本文是云原生之旅第三部分的第一篇,带领大家从单机 Docker 的视角,循序渐进地走到 Kubernetes 集群的世界。
🧠 本章知识卡片

🚀 本章小节
1️⃣ 单机 Docker 的局限性
Docker 在单机环境中最大的优势是轻量、快速、易用,但它也存在天然的限制:
- 资源限制:所有容器运行在同一台机器上,CPU、内存有限。
- 高可用不足:主机宕机意味着所有容器全部不可用。
- 多容器管理困难:如果应用依赖多个服务,需要手动维护容器启动顺序与参数。
- 扩展瓶颈:弹性伸缩需要人工干预,无法自动根据流量变化调整容器数量。
在业务初期,这些限制并不明显,但一旦用户规模扩大,就会直接影响系统稳定性和运维效率。
2️⃣ Docker Compose:单机多容器编排的过渡方案
在迁移到 Kubernetes 之前,Docker Compose 是很多团队的自然选择。
它是一个单机容器编排工具,通过一个 YAML 文件描述多容器应用及其依赖,使用
docker compose up
一键启动。优点
- 配置集中化:所有服务定义集中在
docker-compose.yml
中。
- 多容器管理:数据库、缓存、后端、前端等可一次性启动/停止。
- 简化依赖管理:支持容器间的网络与启动顺序定义。
局限
- 依旧是单机:无法跨节点调度容器。
- 伸缩能力有限:支持
scale
手动扩容,但不能自动伸缩。
- 高可用缺失:容器或宿主机异常需要人工处理。
适用场景:本地开发环境、多容器单机部署、测试环境。
更多详情介绍可参看之前的一篇文章:《第二部分:从 Docker 到 Docker Compose》
3️⃣ 为什么选择 Kubernetes
Kubernetes 的诞生,就是为了管理多台机器上的容器,它带来了许多 Docker/Compose 所不具备的能力,以下是它们的对比:
特性 | 单机 Docker | Docker Compose | Kubernetes |
弹性伸缩 | 手动 | 手动 | 自动伸缩(HPA) |
高可用 | 无 | 无 | 多节点冗余,自动容器调度 |
服务发现 | 需手动配置 | 自动单机网络 | 内置 DNS 与跨节点服务发现 |
滚动升级 | 需停机或自写脚本 | 无 | 原生滚动更新与回滚 |
资源调度 | 单机 | 单机 | 集群级别智能调度 |
运维自动化 | 低 | 中 | 高 |
一句话总结:
Docker 解决了“如何构建并运行容器”的问题,Docker Compose 解决了“如何在单机管理多容器”的问题,Kubernetes 解决了“如何大规模、自动化、可靠地运行容器”的问题。
4️⃣ 使用 kompose 一键迁移至 Kubernetes
什么是 kompose ?
kompose
是 Kubernetes 社区官方维护的一个迁移工具,可以一键把 Docker Compose 转成 Kubernetes YAML。如果已经有了
docker-compose.yaml
文件,使用该工具可以大大减少手工编写YAML
的工作量。安装 kompose
PS:如果无法从 github 官方下载,可关注公众号【青萍叙事】,回复
kompose
即可获取快速下载链接。一键转换 YAML
kompose
的用法也很简单,一键即可将docker-compose.yaml
文件转换并生成k8s yaml
:✅ 总结
从单机 Docker 到 Docker Compose 再到 Kubernetes,不只是一次工具迁移,更是一次运维思维的升级:
- 从单机思维到多容器协作思维再到集群思维
- 从手工部署到声明式管理
- 从资源限制到弹性扩展
未来,随着 Serverless + Kubernetes 的结合,开发者将更少关注底层集群管理,而把更多精力投入到业务逻辑上。
对于正处在业务增长阶段的团队来说,以 Docker Compose 作为过渡,将会让迁移过程更加平滑、风险更可控。
而借助
kompose
工具,开发者可以无缝迁移现有 Compose 配置到 Kubernetes,降低学习和改造成本。有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
- 作者:青萍叙事
- 链接:https://blog.lusyoe.com/article/from-docker-to-compose-to-kubernetes
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。