二者不是同一种类型。
一、docker 是容器,tomcat是jsp应用服务器
二、tomcat能够安装在物理机上,虚拟机上,也能够安装在Docker上。因此从这个角度讲,Docker也能够看作是一种超轻量化的虚拟机。
三、Docker能够安装在物理机,虚拟机上,但不知道Docker上面是否能够再安装Docker,我以为理论上应该能够。
四、Docker做为超轻量级的平台,能够总体移植,这也是它流行的其中一个缘由。html
Docker 提供轻量的虚拟化,你可以从Docker得到一个额外抽象层,你可以在单台机器上运行多个Docker微容器,而每一个微容器里都有一个微服务或独立应用,例如你能够将Tomcat运行在一个Docker,而MySQL运行在另一个Docker,二者能够运行在同一个服务器,或多个服务器上。将来可能每一个应用都要Docker化。docker
容器的启动和关系是很是快速的。Docker目前可以有如下八种用途:tomcat
Docker 提供轻量的虚拟化,你可以从Docker得到一个额外抽象层,你可以在单台机器上运行多个Docker微容器,而每一个微容器里都有一个微服务或独立应用,例如你能够将Tomcat运行在一个Docker,而MySQL运行在另一个Docker,二者能够运行在同一个服务器,或多个服务器上。将来可能每一个应用都要Docker化。服务器
容器的启动和关系是很是快速的。Docker目前可以有如下八种用途:网络
这是Docker初始目的,虚拟机VM最大的好处是基于你的应用配置可以无缝运行在任何平台上。Docker提供一样相似VM的能力,可是没有任何反作用,它能让你将环境和配置放入代码而后部署,一样的Docker配置可以在各类环境中使用,这实际是将应用环境和底层环境实现了解耦。架构
可以对代码以流式pipeline管道化进行管理,从开发者的机器到生产环境机器这个流程中都能有效管理。由于在这个流程中会有各类不一样的环境,每一个均可能有微小的区别,Docker提供了跨越这些异构环境以一致性的微环境,从开发到部署实现流畅发布。jsp
在一个开发环境,咱们但愿咱们的开发环境能更加接近于生产环境,咱们会让每一个服务运行在本身的VM中,这样能模拟生产环境,好比有时咱们并不老是须要跨越网络链接,这样咱们能够将多个Docker装载一系列服务运行在单机上最大程度模拟生产分布式部署的环境。分布式
有不少理由你须要在一台机器上运行多个应用,这就须要将原来铁板一块monolithic的应用切分为不少微服务。实现应用之间的解耦,将多个应用服务部署在多个Docker中能轻松达到这个目的。微服务
使用Docker也能合并多个服务以下降费用,很少的操做系统内存占用,跨实例共享多个空闲的内存,这些技术Docker能以更加紧密资源提供更有效的服务合并。云计算
Docker可以做为云计算的多租户容器,使用Docker能容易为每一个租户建立运行应该多个实例,这得益其灵活的快速环境以及有效diff命令。
Docker经过建立流程的容器,没必要从新启动操做系统,几秒内能关闭,你能够在数据中心建立或销毁资源,不用担忧额外消耗。典型的数据中心利用率是30%,经过更积极的资源分配,以低成本方式对一个新的实例实现一个更聚合的资源分配,咱们很容易超过这个利用率,大大提升数据中心的利用效率。