docker解决的问题:
由于不同的机器有不同的操作系统,以及不同的库和组件,将应用部署到多台服务器上需要进行大量的环境配置操作。
docker主要解决环境配置问题,它是一种虚拟化技术,对进程进行隔离,被隔离的进程独立于宿主机操作系统和其它隔离的进程。使用docker可以不用修改程序代码,就能够实现将应用程序部署到不同的机器上。
docker和虚拟机的区别:
虚拟机也是一种虚拟化技术,它与docker最大的区别在于它是通过模拟硬件并在硬件上安装操作系统实现的。
启动速度
启动虚拟机需要启动虚拟机的操作系统,在启动相应的应用,这个过程会非常慢。
而启动docker相当于启动宿主操作系统上的一个进程。
占用资源
虚拟机是一个完整的操作系统,需要占用大量的磁盘空间,内存和CPU,一台机器只能开启几十个虚拟机。而docker只是一个进程,只需要将应用以及相应组件打包,在运行时占用很少的资源,一台机器可以开启上千个。
优势
除了启动速度比虚拟机更快和占用资源较少外,docker还具有以下优势: