云原生学习路线导航页(持续更新中)
本文是 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,也能做到秒级启动,但还是不如容器资源消耗少
-
持续交付和部署
-
更轻松的迁移
-
更轻松的维护和扩展