ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

04_Kubernetes (K8s) 与 Docker 的区别

04_Kubernetes (K8s) 与 Docker 的区别

Kubernetes (K8s) 与 Docker 的区别

Docker — 容器引擎

Docker 负责创建和运行单个容器,是容器化技术的基础工具。

能力说明
镜像构建docker build打包应用 + 依赖为镜像
容器运行docker run启动单个容器
单机管理在一台机器上管理容器生命周期
适用场景开发、调试、单节点部署

Kubernetes (K8s) — 容器编排平台

K8s 负责管理大规模集群中的容器,解决多机器协作问题。

能力说明
集群编排跨多台机器调度容器,自动分配到合适的节点
自动扩缩容根据流量自动增减 Pod 数量
自愈恢复容器/节点故障时自动重启或迁移
服务发现/负载均衡自动分配 IP,对外提供统一入口
滚动更新零停机部署新版本
适用场景生产环境、多节点、大规模服务

类比理解

类比DockerKubernetes
餐厅厨师做一道菜经理协调整个厨房
交通一辆车的发动机城市交通调度系统
问题“怎么跑一个容器?”“怎么跑 1000 个容器?”

关系

┌─────────────────────────────────────────┐ │ Kubernetes (K8s) │ │ ┌───────────┐ ┌───────────┐ ┌─────┐ │ │ │ Node 1 │ │ Node 2 │ │ ... │ │ │ │ ┌───────┐ │ │ ┌───────┐ │ │ │ │ │ │ │ Docker│ │ │ │ Docker│ │ │ │ │ │ │ │ (容器) │ │ │ │ (容器) │ │ │ │ │ │ │ └───────┘ │ │ └───────┘ │ │ │ │ │ └───────────┘ └───────────┘ └─────┘ │ └─────────────────────────────────────────┘
  • Docker 是底层运行时,负责跑容器
  • K8s 是上层编排器,调用 Docker(或其他容器运行时)来管理集群
  • K8s 1.24 之后默认使用containerd替代 Docker 作为运行时,但docker build仍可用于构建镜像

什么时候用什么

场景选择
本地开发、测试Docker
单个服务器部署Docker + Docker Compose
生产环境,多节点Kubernetes
需要自动扩缩容、自愈Kubernetes
返回列表