docker简介
1.Docker 是一个开源的应用容器引擎,基于 GO语言并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。
2.docker和虚拟机比较:
1.启动时间:
Docker秒级,kvm分钟级
2.轻量级
容器镜像大小通常以M为单位,虚拟机以G为单位
容器占用资源少,比虚拟机部署更快捷
3.性能
容器共享宿主机内核,系统级虚拟化,没有Hypervisor层开销,容器性能接近物理机
虚拟机需要Hypervisor层支持,虚拟化一些设备,具有完整的GuestOS虚拟化开销大
因而开销大,性能较差。
4.安全性
由于共享宿主机内核,只是进程级隔离,因此隔离性和稳定性不如虚拟机,容器具有一定权限访问宿主机内核,存在安全隐患
5.使用要求
kvm基于硬件的完全虚拟化,需要硬件cpu虚拟化技术支持
容器共享宿主机内核,可运行在主流的linux发行版,不用考虑cpu是否支持虚拟化术。