『中级篇』容器的技术概述(二)

容器的前世今生

###物理机

  • 部署非常慢
    购买服务器服务,放在IDC机房,各种走流程,很多流程不可控制流程慢。
  • 成本非常高
    物理的服务器,高额的配置成本贵。
  • 资源浪费
    资源太多了,针对app的服务可能利用率不够充分。
  • 难于迁移和扩展
    迁移app端的服务器,我们要提前准备好一个新的物理服务器,环境需要重新的迁移。资源消耗比较大的话,用户增加比较快需要扩展内存,cpu,硬盘麻烦,可能最后还是选择购买新的物理服务器。
  • 可能会被限定硬件厂家
    那些已经采用RISC架构或非x86平台的用户来说,要想体验到x86平台的高效、便捷就要进行系统迁移。但是对于绝大多数应用来说,迁移可不是一件容易的事儿,甚至有些人更是“谈虎色变”。任何解释性和编译性语言都存在代码的风险。

###虚拟机

物理资源的限定和调度,设置指定VM的内存,cpu,硬盘根据应用来进行控制,方便扩展,欢迎可以统一化,方便管理。可以使物理资源的最大化利用。

  • 一个物理机部署多个服务
    在软件中模拟各种操作系统,可以同时运行多个相同或者不同的操作系统方便,可挂起(暂停),可作快照,可作克隆,在运行的时候占用内存。
  • 每个app在独立的VM里
    每个app都在一台VM里面,互相不干扰不影响。
  • 资源池
    一个物理机的资源分配到了不同的虚拟机里
  • 很容易扩展
    加物理机器 || 加虚拟机
  • 很容易云化
    亚马逊AWS,阿里云,腾讯云,华为云等

###虚拟机的局限性
每个虚拟机就是一个操作系统,每个操作系统都要分配对应的操作系统资源,大家都用window系统,真正的生产环境一般都是用linux操作系统其中一部分原因就是因为linux系统消耗资源比较少。如果在一个物理服务器上放入10个虚拟机,每个虚拟机系统占用1g资源,等于浪费了10g的内存资源。所以当操作系统越来越多的时候消耗在系统上的资源也就越来越大。

###开发和运维面临的问题

上边是开发人员,下面是运维。
开发人员选择了不同语言和环境来进行开发,运维人员为了使应用正常的跑起来需要配置尽量和开发人员开发一样的环境来满足应用的正常使用。

###容器解决了什么问题

docker进行了容器的打包,打包好的容器,可以运行在任何的环境,解决了开发和运维直接的矛盾。开发和运维之间建立了桥梁,这也是时间devops的最佳解决方案。

###什么是容器

对软件和其依赖的标准化打包
应用之间相互隔离(肯定没有虚拟机和物理机隔离的那么完全)
共享同一个OS Kernel(同一个操作系统上)
可以运行在很多主流的操作系统上(unix,linux,windows等)

###虚拟机和容器的区别

###虚拟化和容器的结合

在国内很多场景都是虚拟化和容器结合来使用的,将物理机进行虚拟化出来多个VM,在VM内部在使用容器化。

容器技术的概述就讲这么多欢迎大家关注我,继续更新,一起学习docker


往期精彩
  1. docker导学(一)

原文地址:http://blog.51cto.com/12040702/2145100

时间: 2024-10-29 03:31:27

『中级篇』容器的技术概述(二)的相关文章

『中级篇』docker官网介绍(四)

从docker官网了解docker的历史,为了保证文章的质量,多增加了截图,想让各位老铁看的比较爽--###官网 docker官网介绍 ###分类 社区版(Docker Community Edition (CE) ) 企业版(Docker Enterprise Edition (Docker EE)) ###版本由来最早的docker版本都是从1.0慢慢的累积到1.13,在2017年3月份docker的版本发生了变化变成了版本2017.03版本,也形成了CE和EE版本,从此之后docker的版

『中级篇』docker之java容器运行外置springboot-jar(番外篇)(79)

学了docker这么久终于开始实战了,所有部署方式全部使用docker的方式感觉特别爽,我这里分享下,我部署springboot的富jar包. 下载java的镜像 docker pull java:openjdk-8 spring boot 打包后的富jar 放入指定的目录. 执行命令创建容器 内部路径/opt/pj/business.jar,容器路径/usr/business.jar.执行jar java -jar /usr/business.jar暴露端口-p docker run -d -

零基础学习hadoop到上手工作线路指导(中级篇)

此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结. 五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解: hadoop分为hadoop1.X.hadoop2.X,并且还有hadoop生态系统.这里只能慢慢介绍了.一口也吃不成胖子. hadoop 1.x分为 mapreduce与hdfs其中mapreduce是很多人都需要迈过去的槛,它比较难以理解,我们有时候即使写出了mapreduce程序,但是还是摸不着头脑. 我们不知

零基础学习openstack【完整中级篇】及openstack资源汇总

1.你是如何学习openstack的?2.你对openstack的组件了解多少?3.你认为openstack该如何学习? 一直想写关于openstack的方面的内容,今天终于整理完成.算是完成一桩心事,内容整合来自: 零基础学习openstack(上)[中级篇] 零基础学习openstack(下)[中级篇] 是在 零基础学习openstack[初级篇]基础上的一个继续: 初级篇,我们主要是有这么一个概念,openstack的组成openstack由哪些部分来组成: Identity(代号为“Ke

Delphi知识点与技术概述【第二章 核心类库】

第三章 核心类库 Delhpi可视化编程依赖于庞大的巨型类库.Delphi 标准类库包含了数百个类以及数以千计的方法. 内容提要: *RTL包.CLX与VCL CLX用作linux中,VCL用作Windows中 VCL是一个独立的大型库(组件,控件,非可视组件,数据集合,数据感应控件,等等). 库的核心非可视化组件与类属于RTL包. Vcl结构: CLX结构: BaseCLX VisualCLX DateCLX NetCLX 库的VCL专用部分: VCL还提供了Windows专用的: Delph

Github 恶搞教程(一起『玩坏』自己的 Github 吧)

最近在伯乐在线读到一篇趣文,<如何在 Github『正确』做贡献>,里面各种能人恶搞 Github 的『Public contributions』,下面截取几个小伙伴的战绩: 顺藤摸瓜,发现原来有人已经做出『玩坏』Github 的工具啦,名叫 gitfiti.主要对应预先定义的模板,进行相应日期的 commit 操作,push 至 Github 后在贡献栏中生成相应像素点,并且利用 Github 贡献数不同颜色深度不同的机制,就可以在自己的贡献栏里面看见像素画了.怎么样,是不是心动啦,那么下面

25个增强iOS应用程序性能的提示和技巧--中级篇

25个增强iOS应用程序性能的提示和技巧--中级篇 标签: ios性能优化内存管理 2013-12-13 10:55 738人阅读 评论(0) 收藏 举报  分类: IPhone开发高级系列(34)  本文收集了25个关于可以提升程序性能的提示和技巧,分为3个不同的等级:初级.中级和高级.您也可以点击查看初级篇. 在性能优化时,当你碰到一些复杂的问题,应该注意和使用如下技巧: 9.重用和延迟加载View10.缓存.缓存.缓存11.考虑绘制12.处理内存警告13.重用花销很大的对象14.使用Spr

(中级篇 NettyNIO编解码开发)第十章-Http协议开发应用

HTTPC超文本传输协议〉协议是建立在TCP传输协议之上的应用层协议,它的发展是万维网协会和Internet工作小组IET'F合作的结果.HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过多年的使用和发展,得到了不断地完善和扩展.由于HTTP协议是目前Web开发的主流协议,基于HTTP的应用非常广泛,因此,掌握HTTP的开发非常重要,本章将重点介绍如何基于Netty的HTTP协议技进行HTTP服务端和客户端开发.由于Netty的

【学习中】Unity&lt;中级篇&gt; Schedule

章节 内容 签到 Unity3D 实战技术第二版视频教程(中级篇) 1.游戏引擎发展史 2.Unity发展史 3.3D图形学与必要组件 4.核心类_GameObject类 5.核心类_MonoBehaviour类_脚本生命周期 6.Unity伪多线程研究实验 7.核心类_Time类 8.场景异步加载与输入管理器讲解 9.贴图类型 10.二维贴图实验 11.立方体贴图 12.视频贴图 13.渲染贴图 14.图形学_材质 15.图形学_着色器 16.Unity编辑器菜单学习 17.物理学模拟_铰链关