docker 的优势:
1、环境依赖更少
2、在同等规模下,docker更轻量
3、好移动
缺点:
1、隔离性不佳
2、共享kernel
VM的优势:
1、隔离全面
2、自带kernel
VM的缺点:
1、对于跨环境迁移的能力不足。
至于其他的,docker启动快,docker可以回滚,docker可以弹性。
VM可以通过删减也做到启动快,VM做快照也可以回滚,VM也可以做弹性。
但如果从微服务的理念进行编程的话。
推荐使用docker,开发人员每次将结果整合成docker镜像,推送给运维人员,运维人员就可以轻松上线。
但如果版本稳定,不怎么变更。其实用VM和docker差距不大。
容器的正确使用场景
根据以上的分析,我们发现容器推荐使用在下面的场景下。
1. 部署无状态服务,同虚拟机互补使用,实现隔离性
2. 如果要部署有状态服务,需要对里面的应用十分的了解
3. 作为持续集成的重要工具,可以顺利在开发,测试,生产之间迁移
4. 适合部署跨云,跨Region,跨数据中心,混合云场景下的应用部署和弹性伸缩
5. 以容器作为应用的交付物,保持环境一致性,树立不可变更基础设施的理念
6. 运行进程基本的任务类型的程序
7. 用于管理变更,变更频繁的应用使用容器镜像和版本号,轻量级方便的多
8. 使用容器一定要管理好应用,进行health check和容错的设计
原文:https://blog.csdn.net/gui951753/article/details/81533915