方面DockerKubernetes (K8s)
定义容器化平台,用于构建、打包、运行单个容器。容器编排平台,用于管理大量容器的部署和运行。
作用将应用和依赖打包成容器,保证一致运行环境。自动化部署、扩缩容、负载均衡、服务发现等。
关注点容器镜像的制作与运行多容器、多主机的集群管理
运行层级单机上的容器运行环境集群级别的容器管理和调度
组成Docker Engine、Docker CLI、Docker Hub等Master 节点(API Server, Scheduler等)、Node 节点
负载均衡不支持内置负载均衡(需外部工具配合)内置服务发现和负载均衡机制
弹性伸缩需要借助额外工具或手动操作支持自动弹性伸缩(Horizontal Pod Autoscaler)
存储提供数据卷和绑定挂载支持持久卷(Persistent Volume)和存储类
典型使用场景开发测试环境、单节点应用容器化生产级分布式应用管理、多节点容器集群
学习曲线相对简单,快速上手复杂,需要理解集群架构和资源管理

简单类比

  • Docker 是“容器工厂”,负责制造和运行单个容器。
  • Kubernetes 是“容器调度中心”,负责管理、调度和监控大量容器,实现高可用和弹性伸缩。

关系

  • Kubernetes 本身并不替代 Docker,反而依赖容器运行时(如 Docker 或 containerd)来实际运行容器。
  • 目前 Kubernetes 默认用 containerd 作为容器运行时,Docker 也可以作为容器运行时,但需配置。