什么是容器?一句话概括容器:容器就是将软件打包成标准化单元,以用于开发、交付和部署。
容器镜像是轻量的,可执行的独立软件包,包含软件运行所需的所有内容:代码,运行时环境,系统工具,系统库和设置。
容器化软件适用于基于linux和windows的应用,在任何环境中都能够始终如一地运行。
容器赋予了软件独立性,使其免受外在环境差异(例如,开发和预演环境的差异)的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突。
我觉得容器就是一个存放东西的地方,就像房子可以装各种家具,书架可以放各种书。我们现在所说的容器存放的东西可能更偏向于应用,比如网站,程序甚至是系统环境。
Docker是一个能把开发的应用程序自动部署到容器的开源引擎
虚拟机(Virtual machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作
(1) 虚拟机是在一台物理机上,利用虚拟化技术,虚拟出来多个操作系统,每个操作系统之间是隔离的。docker是开源的应用容器引擎,依然需要先在电脑上安装操作系统,然后安装Docker容器管理器。
(2) 虚拟机是在硬件级别进行虚拟化,而docker是在操作系统的层面虚拟化
(3) 虚拟机是通过模拟硬件搭建操作系统,而docker则是复用操作系统
(4) 虚拟机实现了操作系统之间的隔离,docker只是进程之间的隔离,所以虚拟机的隔离级别更高,安全性更强
(5) docker的运行速度更快
(6) docker的文件要小的多,虚拟机要大