首页 > 其他 > 详细

Docker容器与虚拟机有什么区别

时间:2020-10-09 14:53:02      阅读:49      评论:0      收藏:0      [点我收藏+]

概述:

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。

 

Docker解决的主要问题

有过后台开发经验的同学,一定遇到过下面这些问题:

程序在开发环境跑得好好的,但是部署到生产环境,却状况频出;

假设某个程序要在客户的环境上进行部署,虽然在自己的环境上部署、验证成功,但始终担心客户的环境上缺少某些必要的库文件,或者某些文件的版本不符合要求;

那么,有了docker,这些问题都将不复存在。

 

什么是Docker

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。

如果不好理解,我们再拿集装箱打个比方。

集装箱解决了什么问题呢?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker也是类似的理念。我们可以在一台机器上跑多个互相毫无关联的docker容器,每一个容器就相当于一个集装箱。

 

Docker里的几个基本概念

  • 镜像

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

  • 容器

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

  • 仓库

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

 

与传统虚拟化的区别

这里我们顺便讲一下传统虚拟化。

我们看到,传统虚拟化是站在硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境,而Dokcer则是在OS的基础上进行虚拟,显然Dokcer轻量得多,因此其资源占用、性能消耗相比传统虚拟化都有很大优势。

 

虚拟化与docker的区别

docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容,虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。

 

举个例子,Docker就是手机中的各种APP,只需要一个系统就可以下载自己所需的应用,但是虚拟化技术相当于你的苹果手机安装一个庞大软件,这个软件上安装安卓系统、魅族系统等,每个系统上还要安装各类应用,比较麻烦。

但两者没有绝对的好坏,主要还是看应用场景,根据不同的需求选择不同的解决方案即可

 

docker相当于vmwre,镜像相当于虚拟机的镜像盘,实际运行的虚拟机相当于docker的容器

Docker容器与虚拟机有什么区别

原文:https://www.cnblogs.com/chen-xia/p/13785430.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!