随着k8s 作为容器编排解决方案变得越来越流行有些人开始拿 Docker 和 k8s进行对比不禁问道Docker 不香吗k8s 是kubernets的缩写’8‘代表中间的八个字符。其实 Docker 和 k8s 并非直接的竞争对手它俩相互依存。Docker 是一个容器化平台而 k8s 是 Docker 等容器平台的协调器。容器化时代来了虚拟化技术已经走过了三个时代没有容器化技术的演进就不会有 Docker 技术的诞生。虚拟化技术演进1物理机时代多个应用程序可能会跑在一台机器上。物理机时代2虚拟机时代一台物理机器安装多个虚拟机VM一个虚拟机跑多个程序。虚拟机时代3容器化时代一台物理机安装多个容器实例container一个容器跑多个程序。容器化时代容器化解决了软件开发过程中一个令人非常头疼的问题用一段对话描述测试人员你这个功能有问题。开发人员我本地是好的啊。开发人员编写代码在自己本地环境测试完成后将代码部署到测试或生产环境中经常会遇到各种各样的问题。明明本地完美运行的代码为什么部署后出现很多 bug原因有很多不同的操作系统、不同的依赖库等总结一句话就是因为本地环境和远程环境不一致。容器化技术正好解决了这一关键问题它将软件程序和运行的基础环境分开。开发人员编码完成后将程序打包到一个容器镜像中镜像中详细列出了所依赖的环境在不同的容器中运行标准化的镜像从根本上解决了环境不一致的问题。容器化技术的尖刀武器容器化技术的特点可移植性不依赖具体的操作系统或云平台比如在阿里云或腾讯云直接随意迁移。占地小容器只需要其应用程序以及它需要运行的所有容器和库的依赖清单不需要将所有的依赖库都打包在一起。共享 bin 和 lib不同的容器可以共享 bin 和 lib进一步节省了空间。Docker 横空出世2010年一位年轻小伙子在美国旧金山成立了一家名叫【dotCloud】的公司 开发了 Docker的核心技术从此开启了容器技术的时代。Docker原公司名后面 dotCloud 公司将自己的容器技术进行了简化和标准化取名为 Docker就是大家熟悉的鲸鱼 logo。Docker新logo2013年dotCloud 公司宣布将 Docker 开源随着越来越多的工程师发现了它的优点 Docker 的人气迅速攀升成为当时最火爆的开源技术之一。当前有30以上的企业在其AWS环境中使用Docker并且这个数字还在继续增长。Docker使用率越来越高Docker怎么用其实大多数人谈论 Docker 时说的是 Docker Engine这只是一个构建和运行的容器。在运行容器前需要编写Docker File通过 dockerFile 生成镜像然后才能运行 Docker 容器。Docker File 定义了运行镜像image所需的所有内容包括操作系统和软件安装位置。一般情况下都不需要从头开始编写 Docker File在 Docker Hub 中有来自世界各地的工程师编写好的镜像你可以基于此修改。编排系统的需求催生 k8s尽管Docker为容器化的应用程序提供了开放标准但随着容器越来越多出现了一系列新问题如何协调和调度这些容器如何在升级应用程序时不会中断服务如何监视应用程序的运行状况如何批量重新启动容器里的程序解决这些问题需要容器编排技术可以将众多机器抽象对外呈现出一台超大机器。现在业界比较流行的有k8s、Mesos、Docker Swarm。在业务发展初期只有几个微服务这时用 Docker 就足够了但随着业务规模逐渐扩大容器越来越多运维人员的工作越来越复杂这个时候就需要编排系统解救opers。应用程序的声明周期一个成熟的容器编排系统需要具备以下能力处理大量的容器和用户负载均衡鉴权和安全性管理服务通信多平台部署k8s与Docker Swarm江湖恩怨k8s VS Docker Swarm如果你非要拿 Docker 和 k8s 进行比较其实你更应该拿 Docker Swarm 和 k8s 比较。Docker Swarm 是 Docker 自家针对集群化部署管理的解决方案优点很明显可以更紧密集成到 Docker 生态系统中。虽说 Swarm 是 Docker 亲儿子但依旧没有 k8s 流行不流行很大程度是因为商业、生态的原因不多解释。k8s是做什么用的K8s是Google研发的容器协调器已捐赠给CNCF现已开源。Google 利用在容器管理多年的经验和专业知识推出了 k8s主要用于自动化部署应用程序容器可以支持众多容器化工具包括现在非常流行的Docker。目前k8s 是容器编排市场的领导者开源并公布了一系列标准化方法主流的公有云平台都宣布支持。一流的厂商都在抢占标准的制高点一堆小厂商跟着一起玩这就叫生态了。国内的大厂商都在干嘛呢抢社区团购市场玩资本游戏哎K8s 架构和组件k8s 由众多组件组成组件间通过 API 互相通信归纳起来主要分为三个部分controller managernodespodsk8s集群架构图Controller Manager即控制平面用于调度程序以及节点状态检测。Nodes构成了Kubernetes集群的集体计算能力实际部署容器运行的地方。PodsKubernetes集群中资源的最小单位。Docker与k8s 难舍难分Docker 和 k8s 在业界非常流行都已经是事实上的标准。Docker 是用于构建、分发、运行容器的平台和工具。而 k8s 实际上是一个使用 Docker 容器进行编排的系统主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位可以包含一个或多个容器。Docker 和 k8s 是根本上不同的技术两者可以很好的协同工作。开发实践灵魂追问1没有 k8s 可以使用 docker 吗可以。实际上一些小型公司在业务不太复杂的情况下都是直接使用 Docker。尽管 k8s 有很多好处但是众所周知它非常复杂业务比较简单可以放弃使用 k8s。2没有 Docker 可以使用 k8s 吗k8s 只是一个容器编排器没有容器拿什么编排k8s 经常与 Docker 进行搭配使用但是也可以使用其他容器如RunC、Containerted 等。3Docker Swarm 和 k8s 怎么选选 k8s。2019年底Docker Enterprise已经出售给MirantisMirantis声明要逐步淘汰Docker Swarm后续会将 k8s 作为默认编排工具。
Docker不香吗?为什么还要用k8s
发布时间:2026/7/15 8:56:19
随着k8s 作为容器编排解决方案变得越来越流行有些人开始拿 Docker 和 k8s进行对比不禁问道Docker 不香吗k8s 是kubernets的缩写’8‘代表中间的八个字符。其实 Docker 和 k8s 并非直接的竞争对手它俩相互依存。Docker 是一个容器化平台而 k8s 是 Docker 等容器平台的协调器。容器化时代来了虚拟化技术已经走过了三个时代没有容器化技术的演进就不会有 Docker 技术的诞生。虚拟化技术演进1物理机时代多个应用程序可能会跑在一台机器上。物理机时代2虚拟机时代一台物理机器安装多个虚拟机VM一个虚拟机跑多个程序。虚拟机时代3容器化时代一台物理机安装多个容器实例container一个容器跑多个程序。容器化时代容器化解决了软件开发过程中一个令人非常头疼的问题用一段对话描述测试人员你这个功能有问题。开发人员我本地是好的啊。开发人员编写代码在自己本地环境测试完成后将代码部署到测试或生产环境中经常会遇到各种各样的问题。明明本地完美运行的代码为什么部署后出现很多 bug原因有很多不同的操作系统、不同的依赖库等总结一句话就是因为本地环境和远程环境不一致。容器化技术正好解决了这一关键问题它将软件程序和运行的基础环境分开。开发人员编码完成后将程序打包到一个容器镜像中镜像中详细列出了所依赖的环境在不同的容器中运行标准化的镜像从根本上解决了环境不一致的问题。容器化技术的尖刀武器容器化技术的特点可移植性不依赖具体的操作系统或云平台比如在阿里云或腾讯云直接随意迁移。占地小容器只需要其应用程序以及它需要运行的所有容器和库的依赖清单不需要将所有的依赖库都打包在一起。共享 bin 和 lib不同的容器可以共享 bin 和 lib进一步节省了空间。Docker 横空出世2010年一位年轻小伙子在美国旧金山成立了一家名叫【dotCloud】的公司 开发了 Docker的核心技术从此开启了容器技术的时代。Docker原公司名后面 dotCloud 公司将自己的容器技术进行了简化和标准化取名为 Docker就是大家熟悉的鲸鱼 logo。Docker新logo2013年dotCloud 公司宣布将 Docker 开源随着越来越多的工程师发现了它的优点 Docker 的人气迅速攀升成为当时最火爆的开源技术之一。当前有30以上的企业在其AWS环境中使用Docker并且这个数字还在继续增长。Docker使用率越来越高Docker怎么用其实大多数人谈论 Docker 时说的是 Docker Engine这只是一个构建和运行的容器。在运行容器前需要编写Docker File通过 dockerFile 生成镜像然后才能运行 Docker 容器。Docker File 定义了运行镜像image所需的所有内容包括操作系统和软件安装位置。一般情况下都不需要从头开始编写 Docker File在 Docker Hub 中有来自世界各地的工程师编写好的镜像你可以基于此修改。编排系统的需求催生 k8s尽管Docker为容器化的应用程序提供了开放标准但随着容器越来越多出现了一系列新问题如何协调和调度这些容器如何在升级应用程序时不会中断服务如何监视应用程序的运行状况如何批量重新启动容器里的程序解决这些问题需要容器编排技术可以将众多机器抽象对外呈现出一台超大机器。现在业界比较流行的有k8s、Mesos、Docker Swarm。在业务发展初期只有几个微服务这时用 Docker 就足够了但随着业务规模逐渐扩大容器越来越多运维人员的工作越来越复杂这个时候就需要编排系统解救opers。应用程序的声明周期一个成熟的容器编排系统需要具备以下能力处理大量的容器和用户负载均衡鉴权和安全性管理服务通信多平台部署k8s与Docker Swarm江湖恩怨k8s VS Docker Swarm如果你非要拿 Docker 和 k8s 进行比较其实你更应该拿 Docker Swarm 和 k8s 比较。Docker Swarm 是 Docker 自家针对集群化部署管理的解决方案优点很明显可以更紧密集成到 Docker 生态系统中。虽说 Swarm 是 Docker 亲儿子但依旧没有 k8s 流行不流行很大程度是因为商业、生态的原因不多解释。k8s是做什么用的K8s是Google研发的容器协调器已捐赠给CNCF现已开源。Google 利用在容器管理多年的经验和专业知识推出了 k8s主要用于自动化部署应用程序容器可以支持众多容器化工具包括现在非常流行的Docker。目前k8s 是容器编排市场的领导者开源并公布了一系列标准化方法主流的公有云平台都宣布支持。一流的厂商都在抢占标准的制高点一堆小厂商跟着一起玩这就叫生态了。国内的大厂商都在干嘛呢抢社区团购市场玩资本游戏哎K8s 架构和组件k8s 由众多组件组成组件间通过 API 互相通信归纳起来主要分为三个部分controller managernodespodsk8s集群架构图Controller Manager即控制平面用于调度程序以及节点状态检测。Nodes构成了Kubernetes集群的集体计算能力实际部署容器运行的地方。PodsKubernetes集群中资源的最小单位。Docker与k8s 难舍难分Docker 和 k8s 在业界非常流行都已经是事实上的标准。Docker 是用于构建、分发、运行容器的平台和工具。而 k8s 实际上是一个使用 Docker 容器进行编排的系统主要围绕 pods 进行工作。Pods 是 k8s 生态中最小的调度单位可以包含一个或多个容器。Docker 和 k8s 是根本上不同的技术两者可以很好的协同工作。开发实践灵魂追问1没有 k8s 可以使用 docker 吗可以。实际上一些小型公司在业务不太复杂的情况下都是直接使用 Docker。尽管 k8s 有很多好处但是众所周知它非常复杂业务比较简单可以放弃使用 k8s。2没有 Docker 可以使用 k8s 吗k8s 只是一个容器编排器没有容器拿什么编排k8s 经常与 Docker 进行搭配使用但是也可以使用其他容器如RunC、Containerted 等。3Docker Swarm 和 k8s 怎么选选 k8s。2019年底Docker Enterprise已经出售给MirantisMirantis声明要逐步淘汰Docker Swarm后续会将 k8s 作为默认编排工具。