如今,网络上对容器和虚拟机的比较很常见。理论上,正如大多数人所言,容器比虚拟机更好,甚至虚拟机会被彻底淘汰。但是,容器和虚拟机并不一定要站在对立面互相开撕,毕竟容器目前存在的很多问题并没有彻底解决,虚拟机的启动速度和内存开销也未必落后于容器。
因此,如果处于初级入门阶段,有必要认真了解容器和虚拟机的区别,以便做出更优选择。
开始之前,我们先想想应用程序在真实计算机环境中的运行情况。假设,我们需要运行 MySQL 数据库、Nodejs 应用程序和 MongoDB 数据库三个应用程序。真实的计算机环境需要配备服务器,这是运行操作系统的物理设备;主机操作系统,在服务器上运行的操作系统,比如可以选择 Linux Ubuntu。
如果希望应用彼此隔离,每个程序都有自己的操作系统,可以在 Linux Fedora 上运行 MySQL、在 Linux Ubuntu 上运行 Nodejs 并在 Windows 上运行 MongoDB。如果不依靠虚拟机和容器,这个过程需要用三台计算机实现,彼此之间还需要互相通信。