Docker,Docker Compose,Docker Swarm,Kubernetes之间的区别

原文地址:https://blog.csdn.net/notsaltedfish/article/details/80959913


最近在学习 Docker 容器,了解到一些相关的技术,像是 Kubernetes,Docker-compose,Docker Swarm,分不清这些东西之间的区别,特意去研究了一下,分享一下,适合刚入门学习容器的同学了解。

Dcoker

Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由 Docker 创建,运行在 Docker 中,其他相关的容器技术都是以 Docker 为基础,它是我们使用其他容器技术的核心。

Docker-Compose

Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的 Docker 中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了 Docker-Compose 你只需要编写一个文件,在这个文件里面声明好要启动的容器,配置一些参数,执行一下这个文件,Docker 就会按照你声明的配置去把所有的容器启动起来,但是 Docker-Compose 只能管理当前主机上的 Docker,也就是说不能去启动其他主机上的 Docker 容器

Docker Swarm

Docker Swarm 是一款用来管理多主机上的 Docker 容器的工具,可以负责帮你启动容器,监控容器状态,如果容器的状态不正常它会帮你重新帮你启动一个新的容器,来提供服务,同时也提供服务之间的负载均衡,而这些东西 Docker-Compose 是做不到的

Kubernetes

Kubernetes 它本身的角色定位是和 Docker Swarm 是一样的,也就是说他们负责的工作在容器领域来说是相同的部分,当然也有自己一些不一样的特点。这个就像是 Eclipse 和 IDEA 一样,也是一个跨主机的容器管理平台。它是谷歌公司根据自身的多年的运维经验研发的一款容器管理平台。而 Docker Swarm 则是由 Docker 公司研发的。

既然这两个东西是一样的,那就面临选择的问题,应该学习哪一个技术呢? 实际上这两年 Kubernetes 已经成为了很多大公司的默认使用的容器管理技术,而 Docker Swarm 已经在这场与 Kubernetes 竞争中已经逐渐失势,如今容器管理领域已经开始已经逐渐被 Kubernetes 一统天下了。所以建议大家学习的时候,应该多考虑一下这门技术在行业里面是不是有很多人在使用。

需要注意的是,虽然 Docker Swarm 在与 Kubernetes 的竞争中败下阵来,但是这个跟 Docker 这个容器引擎没有太大关系,它还是整个容器领域技术的基石,Kubernetes 离开他什么也不是。

总结

Docker 是容器技术的核心、基础,Docker Compose 是一个基于 Docker 的单主机容器编排工具,功能并不像 Docker Swarm 和 Kubernetes 是基于 Dcoker 的跨主机的容器管理平台那么丰富。

评论已关闭