Docker能做什么
- 之前的虚拟机技术
- 一台电脑中需要有kernel、依赖库,以及在这个环境基础上运行的应用
- 虚拟机技术就是在一台电脑上再模拟出一台电脑
- 虚拟机技术的缺点
- 资源占用十分多
- 冗余步骤多
- 启动很慢
- 容器化技术
- 容器化技术不是模拟出一个完整的操作系统
- 每一个容器都会包含依赖库环境和应用,而且每个容器之间互相隔离
- 不同于传统的虚拟机技术,各个应用交叉共用依赖库,容易发生冲突
- Docker 和虚拟机技术的不同之处
- 传统虚拟机:虚拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行环境
- 容器内的应用直接运行在宿主机的内核,容器时没有自己的内核的,也没有虚拟硬件,所以就轻便了
- 每个容器之间是互相隔离的,每个容器内都有一个属于自己的文件系统,互不影响
Docker优势
- 应用更快速的交付和部署
- 传统:一堆帮助文档,安装程序
- Docker:打包镜像发布测试,一键运行
- 更便捷的升级和扩缩容
- 可项目打包为一个镜像,如果服务器A上运行出现性能瓶颈,需要进行水平扩展,可以直接在服务器B上一键运行这个镜像
- 更简单的系统运维
- 在容器化之后,开发、测试的环境都是高度一致的
- 更高效的计算资源利用
- Docker是内核级别的虚拟化,可以在一个物理机上运行很多的容器实例,将服务器的性能发挥到极致