什么是容器?
容器是在隔离的环境里面运行的一个进程,这个隔离的环境有自己的系统目录文件,有自己的ip地址,主机名等。也有人称:容器是一种轻量级虚拟化的技术。
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
为什么要学习容器?
在openstack之后,目前互联网最火热的技术莫过于docker容器了,早在2015年,京东技术备战双11就是使用了10万+Docker,这两年docker更是如日中天。docker只是容器的一种,在学习docker之前,我有必要先了解一下什么是容器?有助于我们更好的了解docker
使用容器有什么好处?
容器相对于kvm虚拟机的优势:
- 容器能提供接近宿主机的性能,而kvm虚拟机会损害一部分宿主机的性能
- 同样硬件配置的宿主机最多能启动10虚拟机,那么它可以启动100+容器
- 启动一台kvm虚拟机,可以能需要20秒,启动一个容器只需要1秒
- kvm需要硬件cpu的支持,容器不需要
linux开机启动流程:
- bios开机硬件自检
- 根据bios设置的优先启动项
- 读取mbr引导
- 加载内核
- 启动第一个进程/sbin/init
- 执行系统初始化脚本/etc/rc.d/rc.sysinit完成系统初始化
- 运行想要的服务sshd
总结:kvm虚拟机运行一个sshd服务需要完整的开机启动流程,容器是直接启动sshd服务,中间的流程全部精简。