Docker的优势和虚拟机区别

news/2024/4/20 6:28:45/文章来源:https://blog.csdn.net/Leon_Jinhai_Sun/article/details/127136287

为什么是Docker

  • 合作开发的时候,在本机可以跑,别人的电脑跑不起来

    这里我们拿java Web应用程序举例,我们一个java Web应用程序涉及很多东西,比如jdk、tomcat、spring等等。当这些其中某一项版本不一致的时候,可能就会导致应用程序跑不起来这种情况。Docker则将程序直接打包成镜像,直接运行在容器中即可。

  • 服务器自己的程序挂了,结果发现是别人程序出了问题把内存吃完了,自己程序因为内存不够就挂了

    这种也是一种比较常见的情况,如果你的程序重要性不是特别高的话,公司基本上不可能让你的程序独享一台服务器的,这时候你的服务器就会跟公司其他人的程序共享一台服务器,所以不可避免地就会受到其他程序的干扰,导致自己的程序出现问题。Docker就很好解决了环境隔离的问题,别人程序不会影响到自己的程序。

  • 公司要弄一个活动,可能会有大量的流量进来,公司需要再多部署几十台服务器

    在没有Docker的情况下,要在几天内部署几十台服务器,这对运维来说是一件非常折磨人的事,而且每台服务器的环境还不一定一样,就会出现各种问题,最后部署地头皮发麻。用Docker的话,我只需要将程序打包到镜像,你要多少台服务,我就给力跑多少容器,极大地提高了部署效率。


3.Docker和虚拟机区别

关于Docker与虚拟机的区别,我在网上找到的一张图,非常直观形象地展示出来,话不多说,直接上图。

比较上面两张图,我们发现虚拟机是携带操作系统,本身很小的应用程序却因为携带了操作系统而变得非常大,很笨重。Docker是不携带操作系统的,所以Docker的应用就非常的轻巧。另外在调用宿主机的CPU、磁盘等等这些资源的时候,拿内存举例,虚拟机是利用Hypervisor去虚拟化内存,整个调用过程是虚拟内存->虚拟物理内存->真正物理内存,但是Docker是利用Docker Engine去调用宿主的的资源,这时候过程是虚拟内存->真正物理内存。

传统虚拟机Docker容器
磁盘占用几个GB到几十个GB左右几十MB到几百MB左右
CPU内存占用虚拟操作系统非常占用CPU和内存Docker引擎占用极低
启动速度(从开机到运行项目)几分钟(从开启容器到运行项目)几秒
安装管理需要专门的运维技术安装、管理方便
应用部署每次部署都费时费力从第二次部署开始轻松简捷
耦合性多个应用服务安装到一起,容易互相影响每个应用服务一个容器,达成隔离
系统依赖需求相同或相似的内核,目前推荐是Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_23704.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【服务器数据恢复】raid0数据恢复案例raid数据网络回迁过程

服务器数据恢复环境: 两块SAS硬盘组成raid0。 服务器故障: raid0中的一块硬盘的指示灯显示黄色,这块硬盘被raid卡踢出,raid崩溃。 服务器数据恢复过程: 1、把硬盘做好标记然后从服务器中取出,通过SAS HBA…

基于51单片机智能农业大棚恒温恒湿Proteus仿真(源码+仿真+全套资料)

资料编号:134 视频讲解: 134-基于51单片机智能农业大棚监测恒温恒湿Proteus仿真(源码仿真全套资料)功能介绍: 采用51单片机作为主控芯片,可以采集当前的温湿度,并且LCD1602显示,可…

机器学习之决策树

一、决策树基本介绍 Decision Tree 可以解决分类和回归问题监督学习算法 二、决策树工作原理 从根开始,按照决策树的分类属性,从上往下,逐层划分。直到叶子节点,便能获得结果。所以决策树算法的核心在于如何构造一颗决策树&…

Flink内存模型

一、内存布局 1、直观图2、树状图 二、内存解释 1、Flink使用的内存 (1)JVM堆上内存说明:堆上内存管理序列化之后的数据,如果需要处理的数据超出了内存限制,则会将部分数据存储到硬盘上。堆上内存在写磁盘或网络传输时至少需要一次内存复制。a.框架堆上内存Framework Heap…

[附源码]Java计算机毕业设计SSMOA自动化办公系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

DenseNet - 稠密神经网络(CNN卷积神经网络)

文章目录DenseNet - 稠密神经网络稠密块体稠密块中的卷积层稠密块过渡层DenseNet模型训练模型小结DenseNet - 稠密神经网络 ResNet极大地改变了如何参数化深层网络中函数的观点。 稠密连接网络(DenseNet) [Huang et al., 2017]在某种程度上是ResNet的逻…

阿里巴巴面试题- - -多线程并发篇(四十一)

前言:七月末八月初的时候,秋招正式打响,公司会放出大量的全职和实习岗位。为了帮助秋招的小伙伴们,学长这里整理了一系列的秋招面试题给大家,所以小伙伴们不用太过焦虑,相信你们一定能超常发挥,收到心仪公司的Offer~~ 内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elast…

SptingBoot基于Echarts生成折线图,柱状图。看完必会,超详细~~

SptingBoot基于Echarts生成折线图,柱状图前言用到的技术与开源代码1.PhantomJS2.Echartsconvert 开源项目2.SpringBoot实现统计图生成1.pom.xml重要依赖2.图片数据模板3.JAVA代码结尾前言 近期产品团伙给了一个生成PDF数据报的需求,PDF中需要生成折线图…

MySQL死锁排查步骤

系列文章目录 第一章:sql_mode模式 第二章:optimize table、analyze table、alter table、gh-ost 第三章:InnoDB MVCC原理 第四章:sql语句执行过程 第五章:Percona Toolkit工具简介 第六章:MySQL索引 第七…

TRC丨艾美捷TRC 波普瑞韦代谢物 M4说明书

艾美捷TRC 波普瑞韦代谢物 M4—丙型肝炎病毒 NS3 丝氨酸蛋白酶抑制剂 Boceprevir (B675500) 的代谢物。 艾美捷TRC 波普瑞韦代谢物 M4化学性质: 目录号B674520 化学名称波普瑞韦代谢物 M4 同义词(1R,2S,5S)-3-[(2S)-2-[[[[1,1-二甲基乙基]氨基]羰基]氨基]-3,3-二…

【C++笔试强训】第四天

🎇C笔试强训 博客主页:一起去看日落吗分享博主的C刷题日常,大家一起学习博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话:夜色难免微凉,前方必有曙光 🌞。 💦&a…

【Day28】力扣算法(超详细思路+注释) [1790. 仅执行一次字符串交换能否使两个字符串相等 ] [328. 奇偶链表 ][148. 排序链表]

刷题打卡,第 二十八 天题目一、1790. 仅执行一次字符串交换能否使两个字符串相等题目二、328. 奇偶链表题目三、148. 排序链表题目一、1790. 仅执行一次字符串交换能否使两个字符串相等 原题链接:1790. 仅执行一次字符串交换能否使两个字符串相等 题目…

消息队列的一些思考

前言 像我们Feign进行服务远程调用就会出现上述情况,服务调用是同步的,需要保证整个链路成功执行完才能成功下单,需要考虑网络抖动等影响,还有雪崩的现象——>同步通信会产生不稳定的影响导致用户体验较差 (41条消息) Dubbo_…

【前端笔试之输入输出问题汇总】系列1

1、题目1:涉及到new Array()以及map方面的一些特性 const array new Array(5).map((item) > {return item {name: 1} }) console.log(array)//[empty*5]一般我们认为会输出[name,name,name,name,name]。但是输出的却是empty。 因为new Array(5)生成的数组在每…

CAD导入Revit缺少东西原因-Revit中如何批量导出CAD图纸

一、CAD导入Revit缺少东西原因汇总 在Revit中导入CAD进行模型搭建是建模过程中常用的方法,但是有时会遇到导入的CAD缺少东西的情况,下面介绍几种导致这种问题的原因 1.CAD导入的时候,不是设置为全部可见。 CAD导入Revit中时,“图层…

护眼灯色温多少对眼睛好?推荐色温4000K暖白光的护眼灯

色温就是指温度的颜色,通常人眼所见的光线,由7中色光的光谱所组成,而护眼灯的光源越接近自然光就越好,一般要求色温在4000K左右比较合适,灯光为暖黄光,既温馨有符合相应的亮度,可以起到很好保护…

ROS2在ROS1 的基础的改进点

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、为什么要推出ROS2【重构ROS1】二、ROS1存在的问题三、ROS1与ROS2架构对比四、ROS2新概念例举五、ROS安装版本(…

【SpringCloud学习笔记】Feign

Feign 的使用 什么是Feign Feign是声明性的web服务客户端。它使编写web服务客户端更加容易,它封装类Ribbon和RestTemplate Feign vs OpenFeign 1、Feign是Netflix公司写的,是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,是Spring…

C/C++里危险的宏(Macro)

#define SQUARE(x) x*x 上述宏定义SQUARE(x)用于求“参数”x的平方,这个宏很容易被使用者误认为是函数。宏是由预处理器处理的,它有着函数的形式却没有函数调用的代价。我们不建议初学者使用宏,因为使用宏的收益远不足以抵消其带给初学者的风…

基于本地存储LVM新建虚机方案

文章目录基于本地存储LVM新建虚机方案date: 2021/12/22auth: mmwei3一、环境信息如下:二、需求方案:1、虚机(卷启动)系统盘数据盘 三者在同一计算节点。2、虚机可以挂本计算节点的数据盘也可以挂载其他计算节点的数据盘。3、虚机可以使用本节点上的HDD做…