docker和传统虚拟机


文章目录

  • docker和传统虚拟机
  • 传统虚拟机和容器的对比
  • 在后台的Docker:Windows和Linux的区别


传统虚拟机和容器的对比

  1. 传统的VMware从开始到运行,很慢,而且内存很大
  • 资源占用多
  • 冗余步骤多
  • 启动慢

linux容器不是模拟一个完整的操作系统,而是对进程进行隔离。有了容器,就可以将软件运行所需要的所有资源打包到有个隔离的容器中。容器和虚拟机不同,不需要捆绑一整套的操作系统,只需要软件工作所需要的库和资源和设置。

  • docker容器是在操作系统层面实现虚拟化,直接复用本地主机的操作系统,容器之间相互隔离,进程互不影响。
  • 传统虚拟机是在硬件层面实现虚拟化,然后运行一个完整的操作系统

即docker的优势体现为启动速度快,占用体积小

docker作为内核级虚拟化,不像传统虚拟化技术一样需要额外的hypervisor支持,所以在一台物理机上可以运行很多个容器实例,可以大大提升CPU和内存利用率

在后台的Docker:Windows和Linux的区别

在Windows和Linux系统中安装Docker的方法只有一个不同。在Linux系统上安装Docker时,只需要安装Docker引擎和管理工具,而不需要创建虚拟机或者虚拟网络,因为你的容器将会为你创建环境。其实docker启动的应用,还是直接运行在宿主机上,和普通的程序一样,直接调用宿主机的内核;---- 在宿主机上,通过ps可以看到docker启动的应用进程 (这也就是为什么说,docker只启动一个进程的原因);

docker ps

Docker在Windows系统上安装是不同的。在安装时,Docker会创建一个基于Linux的虚拟机,叫做MobyLinux虚拟机,这个虚拟机是基于Alpine Linux的。Docker应用程序会连接到此虚拟机,你便可以开始创建具有必要操作组件的容器了。

为了与本地网络和NAT(网络地址转换)进行通信,在Docker安装中会为虚拟机配置一个子网,以便你的容器在应用程序中使用。

因为所有这些步骤都发生在后台,身为用户的你不必为这些步骤操心。不过,事实上Docker是在Windows后台运行虚拟机,这也是Docker在Windows和Linux的另外一个主要区别。
行虚拟机,这也是Docker在Windows和Linux的另外一个主要区别。