虚拟机(VM)就是用来模拟计算机系统的软件,让使用者可以在一台计算机上运行看似多台计算机的设备。在一些需要不同类型的硬件或操作系统上运行软件的需求,虚拟机是一个好帮手,这样就无需使用其他的硬件了。自从 虚拟化 技术和 云计算 服务出现以来,大大小小的IT公司都将虚拟机作为降低成本和提高效率的一种方式。但是,虚拟机会占用大量系统资源。每个虚拟机不仅要运行一个完整的操作系统,还需要运行操作系统要运行的所有虚拟硬件。这样就会消耗大量的内存和CPU资源。与运行单独的物理计算机相比,这样是比较经济的;但对于某些应用程序而言却是很浪费的。这种情况下,就促进了容器的发展。
容器(Container)是一种更轻量级,更灵活的虚拟化处理方式,它将一个应用程序所需的一切打包在一起。容器包括所有代码,各种依赖甚至操作系统,这让应用程序几乎在任何地方都可以运行。因此它的诞生,解决了一个重要问题:如何确保应用程序从一个环境移动到另一个环境的正确运行。它只是虚拟了操作系统,而不像虚拟机一样去虚拟底层计算机。