本文是 Docker核心技术 系列文章:容器技术要解决哪些问题,其他文章快捷链接如下:
- 应用架构演进
- 容器技术要解决哪些问题(本文)
- Docker的基本使用
- Docker是如何实现的
容器技术 是Docker带火的,但不是Docker创造的。容器技术在Linux中已经实现了
2.1.容器技术基于Linux内核的一些技术
容器技术主要基于下面几种技术:
Linux Namespace:做进程隔离,很早就有
Linux Cgroup:做资源管控,是谷歌提到Linux Kernel中的
Union FS:一种文件系统技术,通过将多个文件系统的目录和文件层次结构叠加在一起,使得逻辑上像一个统一的文件系统,Docker利用它实现了镜像技术
2.2.为什么使用Docker
资源占用更小
虚拟机:需要消耗很多资源来模拟一个OS
容器:所有容器都共用一个OS,只是利用了Linux Kernel的一些技术实现了隔离和控制。而且问题排查也不再需要考虑Guest OS
启动时间更短
- 虚拟机:需要模拟OS,启动时间慢
- 容器:不需要模拟OS,启动时间快
一致的运行环境
- 容器:打包的镜像,会把自身需要的运行环境信息一块打包进去,在各种环境都可以运行
性能更强
- 现在虚拟机也在往前赶,有些Minimum OS,也能做到秒级启动,但还是不如容器资源消耗少
- 现在虚拟机也在往前赶,有些Minimum OS,也能做到秒级启动,但还是不如容器资源消耗少
持续交付和部署
更轻松的迁移
更轻松的维护和扩展