容器技术已经引起了业内的广泛关注,有充分的证据表明,容器技术能够大大提升工作效率。
现在,虚拟化技术已经成为一种被大家广泛认可的服务器资源共享方式,它可以在按需构建操作系统实例的过程当中为系统管理员提供极大的灵活性。由于hypervisor虚拟化技术仍然存在一些性能和资源使用效率方面的问题,因此出现了一种称为容器(Container)的新型虚拟化技术来帮助解决这些问题,下面我们来简单聊聊容器(Container)的发展趋势。
容器(Container)VS虚拟化(VM)
一,容器(Container)
二,容器与VM虚拟技术相比
容器与VM相比,更为轻量,性能更高(除 络);但是安全方面有待提升;
什么是Docker?
Docker VS Container
传统Container
Docker
cgroup + namespace + docker image = Docker Container
Docker加速容器技术的发展
Docker提供软件应用的集装箱,创建即部署
Docker彻底改变程序的交付方式
Docker的核心价值:构建标准化(Dockerfile),交付形态标准化(容器&Image),运行环境标准化(Engine)
Docker Image
Dockerfile & Docker Build
Base Image(OS) + Dockerfile + Docker build = App Docker image
– 多条RUN/单条CMD(可覆盖)/单条EntryPoint(不可覆盖)
– 显示暴露端口EXPOSE
– 纯文本指令序列(部署Env的操作顺序)
– 保持一致,追加更新(build时使用cache加速构建)
– 指令数限制(指令合并):127layers
传统软件开发中遇到的问题
Docker的优势
Docker以及Docker的调度技术出现,拓宽了软件管理的思路和手段
和传统的hypervisor虚拟化比较,容器(不只是Docker)到底轻在哪里?
虚拟机
Docker容器
采用CPU, 卡等硬件虚拟化技术
OS Level,不依赖硬件
隔离性强
共享内核和OS,隔离性弱
提高了资源利用率(相比物理机),但仍然不高(<40%)
资源粒度小,利用率最高可达90%
虚拟化性能差(>15%)
计算/存储无损耗, 络损耗高(docker原生NAT方式20%+)
虚拟机镜像庞大(十几G~~几十G)
docker image 200~300M
虚拟机创建慢(>2分钟,且并发量受管理系统限制)
秒级创建(<10s),并发受限于创库和带宽
虚拟机启动慢(>30s)
秒级(<1s,不含应用本身启动)
资源虚拟化粒度低(1虚4,1虚8,且随着虚拟机数量上升,虚拟化效率降低显著)
实测可达>1000
文章如有不妥之处,欢迎指正!谢谢!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!