Docker精华问答 | Docker vs VM

640?wx_fmt=png

在计算机技术日新月异的今天, Docker 在国内发展的如火如荼。特别是在一线互联网公司 Docker 的使用是十分普遍的,甚至成为了一些企业面试的加分项,那么今天我们继续关于Docker 的精华问答。


640?wx_fmt=gif1

Q:为什么用docker?


A:作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。


Docker 在如下几个方面具有较大的优势:

更快速的交付和部署

Docker在整个开发周期都可以完美的辅助你实现快速交付。Docker允许开发者在装有应用和服务本地容器做开发。可以直接集成到可持续开发流程中。

高效的部署和扩容

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

Docker的兼容性和轻量特性可以很轻松的实现负载的动态管理。你可以快速扩容或方便的下线的你的应用和服务,这种速度趋近实时。

更高的资源利用率

Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。

更简单的管理

使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。


640?wx_fmt=gif2

Q:Docker引擎


A:docker引擎是一个c/s结构的应用,主要组件见下图:640?wx_fmt=png

Server是一个常驻进程

REST API 实现了client和server间的交互协议

CLI 实现容器和镜像的管理,为用户提供统一的操作界面


640?wx_fmt=gif3

Q:Docker构架


A:Docker使用C/S架构,Client 通过接口与Server进程通信实现容器的构建,运行和发布。client和server可以运行在同一台集群,也可以通过跨主机实现远程通信。640?wx_fmt=jpeg


640?wx_fmt=gif4

Q:Docker vs VM


A:VM是一个运行在宿主机之上的完整的操作系统,VM运行自身操作系统会占用较多的CPU、内存、硬盘资源。Docker不同于VM,只包含应用程序以及依赖库,基于libcontainer运行在宿主机上,并处于一个隔离的环境中,这使得Docker更加轻量高效,启动容器只需几秒钟之内完成。由于Docker轻量、资源占用少,使得Docker可以轻易的应用到构建标准化的应用中。但Docker目前还不够完善,比如隔离效果不如VM,共享宿主机操作系统的一些基础库等;网络配置功能相对简单,主要以桥接方式为主;查看日志也不够方便灵活。640?wx_fmt=jpeg

Docker 在容器的基础上,进行了进一步的封装,从文件系统、网络互联到进程隔离等等,极大的简化了容器的创建和维护。使得 Docker 技术比虚拟机技术更为轻便、快捷。

作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多;Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。


640?wx_fmt=gif5

Q:多个 Docker 容器之间共享数据怎么办? 


A:如果是同一个宿主,那么可以绑定同一个数据卷,当然,程序上要处理好并发问题。如果是不同宿主,则可以使用分布式数据卷驱动,让分布在不同宿主的容器都可以访问到的分布式存储的位置。如S3之类。


640?wx_fmt=png

小伙伴们冲鸭,后台留言区等着你!

关于Docker ,今天你学到了什么?还有哪些不懂的?除此还对哪些话题感兴趣?快来留言区打卡啦!留言方式:打开第XX天,答:……

同时欢迎大家搜集更多问题,投稿给我们!风里雨里留言区里等你~


福利

1、扫描添加小编微信,备注“姓名+公司职位”,加入【云计算学习交流群】,和志同道合的朋友们共同打卡学习!


640?wx_fmt=jpeg

2、公众号后台回复:白皮书,获取IDC最新数据白皮书整理资料!


推荐阅读:

  • 10 种最流行的 Web 挖掘工具 | 程序员硬核评测

  • 《复联4》| 生活需要漫威这块糖

  • 如何向 6 岁的孩子解释编程?这个解释厉害了

  • “踏实工作 7 年,辞职时老板头都不抬”

  • 60倍回报! AI工程师用OpenAI创建了一个比特币自动交易工具! 这里是详细做法 | 技术头条

  • 赌5毛钱,你解不出这道Google面试题


640?wx_fmt=png真香,朕在看了!

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

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

相关文章

qt中创键树形控件QTreeWidget与QStackWidget相绑定

引言 实现点击下拉列表的项对应的跳转到相应的堆栈窗口,且每个堆栈窗口中都有各自的树形控件,更换可执行文件所在目录下的文件data.json后,点击更新按钮,可以更新所有堆栈窗口的树形控件。 效果 示例 下面是实现代码&#xff1…

企业实战06:Oracle数据库_约束

Oracle数据库专栏 命令后面可以不加;分号 SQL语句后面一定要加;分号 文章目录约束5-1 Oracle 约束概述5-2 Oracle 非空约束5-3 Oracle 主键约束5-4 Oracle 在修改表时添加主键约束5-5 Oracle 在创建表时添加外键约束(上)5-6 Oracle 在创建表时设置外键约…

为什么你的年薪只是别人的月薪?你需要技术专家帮你「充电」

戳蓝字“CSDN云计算”关注我们哦!2019 年 5 月 26 - 27 日,由中国 IT 社区 CSDN 与数字经济人才发展中心联合主办的第一届 CTA核心技术及应用峰会将在杭州国际博览中心召开。近 500 名开发者将齐聚于此,共同交流探讨机器学习和知识图谱的技术…

qt5中QString输出变量的值

概述 QString类中有两种实现输出字符串中含有变量值的方式,这里做下记录。 示例 方法一 使用QString的函数asprintf; int m_age 12; QString::asprintf("年龄是%d",m_age);方法二 使用arg; QString name "lisa"; QString c…

IDEA快速 实现 SpringMVC 整合xfire 发布 WebService 服务

文章目录一、idea快速搭建web项目二、xfire 服务方搭建1. pom依赖2. web.xml3. 创建一个entity4. 创建一个接口5. 创建接口实现类6. 在WEB-INF创建一个META-INF的目录7. 在META-INF创建一个xfire的目录8. 在xfire创建一个services.xml的目录二、xfire客户端搭建1. 创建xfire客户…

qt中QMap与QMultimap用foreach遍历

引言 若只是单独的遍历容器,不修改容器中元素的值,可以使用foreach来实现,比使用迭代器来遍历元素更简洁,使用foreach迭代器是创建了原来容器的副本,所有不能修改容器中数据。下面看两个示例。 示例 示例一 遍历QM…

腾讯面试:一条SQL语句执行得很慢的原因有哪些?

戳蓝字“CSDN云计算”关注我们哦!技术头条:干货、简洁、多维全面。更多云计算精华知识尽在眼前,get要点、solve难题,统统不在话下!作者:帅地转自:苦逼的码农说实话,这个问题可以涉及…

QT中将float数转换为QString类型

概述 直接上代码,下面是示例: 示例一 float up 23.45; QString str QString::number(up ,f,2);示例二 float up 23.45; QString str QString::asprintf("%.2f",up);示例三 float up 23.45; QString str; str str.setNum(up,f,2);示…

分布式精华问答 | 分布式系统面临哪些挑战?​

布式的处理方式越来越受到业界的青睐——计算机系统正在经历一场前所未有的从集中式向分布式架构的变革。今天,我们就来看看关于分布式的精华问答吧!1Q:什么是分布式缓存?A:为了提高性能和响应时间,在应用程…

Spring4.x集成xfire1.26 问题汇总

WebService专栏之xfire集成异常总览 文章目录一、asm.jar包冲突1.1 问题现象1.2 问题定位:1.3 解决方案:二、 Old 1.x singleton attribute in use2.1 问题现象2.2 问题定位2.3 解决方案:三、Unrecognized xbean element mapping3.1 问题定位…

qt中十进制转换为十六进制和二进制字符串,以及二进制字符串转十进制,十六进制字符串

概述 直接上代码,记录一下,方便日后使用: 示例一 将十进制转换为二进制和十六进制字符串; int num 23; QString str QString::number(num,16);//转换为十六进制 str QString::number(num,2);//转换为二进制示例二 将二进制…

如何使用「番茄法」高效的写算法题?

戳蓝字“CSDN云计算”关注我们哦! 作者:侯振宇转自:五分钟学算法01 目的 持续做算法题的目的仍然是自身能力提升。可以继续细化成三点:保持思维敏捷。非常重要,状态好才能保持对编程的热情。对基础的数据结构、查找和排序保持熟练…

双因子认证(Two-factor authentication)

一、简介 简言之,双因素身份验证(也称为“两步验证”)是指身份验证涉及两个阶段——通常是除了常规密码)之外的某种一次性密码(OTP:One-Time Password)。网上银行已经使用这种方法很长一段时间了…

Spring中,使用工具类无法自动注入service

这个问题我其实遇到很久了,目前解决方案是手动注入service,并且把工具类也手动注入。 场景: 在spring中,我们经常会定义工具类来做一些奇怪的事情,我当前是通过定时任务quarz调度工具类,工具类再调servic…

sizeof与strlen使用中的问题

概述 直接上代码,使用中经常会涉及到sizeof与strlen计算的问题,下面看例子: char *pstr "hello"; char pstr[] "hellonini"; char pstr[6] "hello";上述求sizeof(pstr)的值,分别为&#xff1a…

从人工智能到云,英特尔开源技术推动软件栈创新

戳蓝字“CSDN云计算”关注我们哦!2019年英特尔开源技术峰会(OSTS) 【CSDN记者现场报道】5月14-16日,英特尔主办一年一度的开源技术峰会(OSTS)。该峰会源自2004年的一次内部会议,从最初只有几十个…

Axis2搭建WebService服务

使用Axis2搭建WebService服务 文章目录一、服务端部署1.1 在web.xml配置文件中添加映射路径:2. 创建目录及文件3. 新建服务接口4. 新建接口实现类5. 发布服务6. 浏览器测试二、客户端部署2.1 Axis2客户端通用工具类封装(企业版本)2.2 单元测试(命名空间默认)&#x…

c++实现引用计数

概述 当有指针指向同一块内存空间时,计数器加1,没增加一个指向该内存空间的指针,计数器加1,同理,当原本指向该内存空间的指针指向另一块内存,计数器减1,被指向的另一个内存的计数器加1。下面是…

焦虑的 BAT、不安的编程语言,揭秘程序员技术圈生存现状!

戳蓝字“CSDN云计算”关注我们哦!【CSDN 编者按】在迭代不休的技术圈中,仅在过去的一个月期间,我们见证了有史以来第一张黑洞照片的诞生;经历了为让人义愤填膺的 996;思考了作为程序员的年龄之槛;膜拜了技术…