容器化技术解决了什么问题?
进程之间环境、资源隔离
- 沙箱机制,容器虚拟自己的系统
服务器资源合理分配利用
- 定义服务器中多个服务,某个服务所占用的资源可以选择扩容缩容
符合服务现代敏捷思想,devops 快速迭代
- 一是让开发环境尽量贴近生产环境,二是快速搭建开发环境。现在Docker可以轻易的让几十个服务在Docker中跑起来,从而大大提升开发效率
服务运行环境保持一致
- 用的是同一个镜像,容器中环境一致
扩展、迁移简单
*
容器化的底层原理
- 依赖 Linux Container 技术 ,核心两个组件 Namespace、Cgroups
Namespace
- 提供资源隔离,定义全新运行环境的能力。linux kernel clone 方法,容器本质还是一个进程
Cgroups
- 提供限制资源使用上限的能力。例如:CPU、内存、磁盘等