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

谢邀~我们单位最近在推docker,已经在开发测试环境使用(稍显落后),下面我就谈谈自己的Docker的理解,以及Docker和虚拟机的区别。虚拟机先说说什么是虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。说起来有些绕,那么我们看看虚拟机的架构图,就容易理解了。

例如我们要在一台物理机器运行三个Java项目,彼此之间隔离。从下往上看,解释起来其实很简单:最下面的一层就是物理机,可以是服务器,设置是一台个人电脑;电脑上需要安装操作系统,比如我们安装了win10的操作系统;再往上就是虚拟机软件了,比如我们常用的VirtualBox、VMWare,它们的作用是模拟计算机硬件;继续向上,就是虚拟机模拟出来的操作系统了;在虚拟的操作系统中,安装所需的软件、组件等。

比如我们需要在虚拟操作系统中安装JDK、Tomcat等;最后就是具体的应用了,例如部署到Tomcat中。Docker再说说什么是Docker,找了一句官方的解释:Docker是开源的应用容器引擎。是不是又一头雾水?我们还是先看看Docker的架构图。依然从下往上看:最下面两层,概念同上。往上,可以看做Docker容器的管理器。

依赖和应用都被打包成了Docker镜像。例如,JDK、Tomcat、应用都被打包在了一起,运行在Docker容器里,容器和容器间是隔离的。这里提示:Linux支持Docker,Windows和MacOS的话,不直接支持(win10专业版好像可以直接支持,不过我都是安装Linux的虚拟机,在上面跑Docker)。

Docker和虚拟机的区别从两者的架构图上看,虚拟机是在硬件级别进行虚拟化,模拟硬件搭建操作系统;而Docker是在操作系统的层面虚拟化,复用操作系统,运行Docker容器。Docker的速度很快,秒级,而虚拟机的速度通常要按分钟计算。Docker所用的资源更少,性能更高。同样一个物理机器,Docker运行的镜像数量远多于虚拟机的数量。

虚拟机实现了操作系统之间的隔离,Docker算是进程之间的隔离,虚拟机隔离级别更高、安全性方面也更强。虚拟机和Docker各有优势,不存在谁替代掉谁的问题,很多企业都采用物理机上做虚拟机,虚拟机中跑Docker的方式。我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

怎么建立一个服务器?自己用来下载东西的,像百度网盘那样,但是不限速?


文章TAG:一种创建虚拟机的方法  如何使用cloudify创建虚拟机  一种  创建  虚拟  
下一篇