容器
- 什么是容器
- 容器与虚拟机的区别
什么是容器
容器是在隔离的环境中运行的一个进程
容器在本质上就是一个进程
如果进程结束,容器就会停止
容器隔离的环境比较特殊,它拥有自己的IP地址,系统文件,主机名,进程管理
所以在某些角度,容器与虚拟机相似,但是又不一样
程序
程序:可能是一段代码,一个指令,shell脚本,都可以叫做程序
进程:就是正在运行的程序,正常的进程执行完就会退出
守护进程:在后台一直运行
容器与虚拟机的区别
虚拟机:需要硬件CPU的支持,虚拟机需要模拟计算机的硬件,走正常的开机启动流程
安装操作系统,新建一台虚拟机,开始硬盘是空的,使用光盘ISO,走光驱启动,安装操作系统,硬盘里就有安装好的系统
开机启动流程:
bios开机自检–>根据bios启动项–>读取硬盘第一个扇区的引导程序(grub,uefi, centos7)通过引导选择操作系统, 加载对应的内核(会把硬件驱动都加载好),启动系统第一个进程/sbin/init systemd
虚拟机:
而且物理服务器配置很高,就跑一个服务的话,会浪费很多系统资源
如果为了充分利用资源,就多跑一些服务,这样系统环境会很乱(牵一发而动全身)
虚拟机:
充分利用资源,每个服务的运行环境越纯越好
方便后期服务迁移
但是每次启动虚拟机,都需要消耗系统资源去模拟硬件,启动的虚拟机多的话,消耗的资源也很可观
容器:
不需要硬件CPU的支持,与宿主机共用内核,启动容器的第一个进程
不用模拟硬件,不走开机启动流程
优势:启动快,性能高,损耗少,轻量级
把所有环境都准备好的情况下,不需要走开机启动流程,直接启动自己的第一个进程,所以启动快
直接使用的是物理硬件,所以性能高
不需要去模拟计算机硬件,所以损耗少
容器的镜像大小,与占用的额外的内存都比较小,所以轻量
部署同样的服务,虚拟机与容器的对比,一目了然
企业使用容器
业务故障恢复更快
同样的硬件配置,可以提供更高的性能,损耗的资源更少
节省成本,打个比方:
100虚拟机 100个服务 10宿主机
100容器 100个服务 6宿主机
提供相同的性能,同样的需求,容器需要的物理机更少