Docker精华问答:Docker与虚拟机的区别?| 技术头条

640?wx_fmt=png

Docker 是个划时代的开源项目,它彻底释放了计算虚拟化的威力,极大提高了应用的维护效率,降低了云计算应用开发的成本!使用 Docker,可以让应用的部署、测试和分发都变得前所未有的高效和轻松!


640?wx_fmt=gif1

Q:什么是Docker?


A:Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、 bare metal、OpenStack 集群和其他的基础应用平台。


Docker里的几个基本概念:

镜像:镜像可以理解为一堆静态的文件;

容器:容器则是镜像run起来之后的一个实例。镜像之于容器就好比面向对象编程里的class之于object

仓库:镜像需要地方保存,这个地方就是仓库。


640?wx_fmt=gif2

Q:Docker通常用于哪些场景?


A:·web应用的自动化打包和发布;

      ·自动化测试和持续集成、发布;

      ·在服务型环境中部署和调整数据库或其他的后台应用;

      ·从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。


640?wx_fmt=gif3

Q:Docker 的优点是什么?


A:简化程序:Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。


避免选择恐惧症:如果你有选择恐惧症,还是资深患者。Docker 帮你 打包你的纠结!比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。


节省开支:一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。


640?wx_fmt=gif4

Q:Docker的构架是什么?


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


640?wx_fmt=gif5

Q:Docker与虚拟机的区别?


A:关于Docker与虚拟机的区别,网上找到的一张图,非常直观形象地展示出来,话不多说,直接上图。640?wx_fmt=png


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


640?wx_fmt=png

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

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

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


福利

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


640?wx_fmt=jpeg


推荐阅读:


640?wx_fmt=png 喜欢就点击“在看”吧

猜你喜欢

转载自blog.csdn.net/FL63Zv9Zou86950w/article/details/89037554