dockerfile、docker compose、k8s区别

1.各自功能

  • dockerfile: 构建单个服务镜像,以脚本形式
  • docker-compose:多镜像编排容器
  • k8s:跨服务编排

2. 详解

2.1 dockerfile

从无到有的构建镜像,包括依赖环境、代码、中间件、数据库等。

2.2 docker-compose(docker-compose.yml )

是单机管理,编排容器,可以同时管理多个 container ,将多个相关的容器一次性启动,比如运行一个jar需要依赖jdk、mysql、mq、redis等,这些容器只需要 docker-composer up 就可以全部启动,不需要一个个单独启动。

2.3 k8s

多节点管理Docker

**************************************************************************************************************

Docker

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

Docker-Compose

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

Docker Swarm

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

Kubernetes

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

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

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

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

k8s就像一个领航员,把各种集装箱(container)有条不紊地组装起来,着重提供如下功能:
1.快速部署功能:定义对应的charts,可以方便把大型的应用部署上去。
2.智能的缩扩容机制:部署时候会自动去考虑容器应该部署在哪个服务器上,以及副本的数量可以自定义。
3.自愈功能:某个节点的服务崩溃了,可以自动迁移到另外一个服务器节点来恢复来实现高可用。
4.智能的负载均衡:利用Ingress,可以实现流量通过域名访问进来时候,进行流量的分流到不同服务器上。
5.智能的滚动升降级:升级或者降级时候,会逐个替换,当自定义数量的服务升级OK后,才会进行其他的升级以及真正销毁旧的服务。

***********************************************************************************************************

几种技术的应用场景及资源占用情况

技术应用场景资源占用情况
Docker单机部署简单应用
Docker-Compose单机/少数机器部署应用
k8s集群部署高可用应用
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值