推荐阅读:Docker ---- 从入门到实践
Docker顾名思义就是集装箱的意思,封装好我们需要的很多环境
一、为什么要用Docker
平常我们开发可能需要依赖很多的环境,特别是那种老久的项目,还在用后端渲染模板,这意味着开发前端还得有一套后端的环境
例如说后端开发用的是PHP 6,那以为着前端开发至少得安装一个PHP,而且版本一定要是6,其他的版本还不行
要是用了什么缓存、微服务,那还得装redis、kafka、rabbitMQ之类的
那么要一个前端去装这些环境,那得多么难受。
这时候Docker出现了,它隔离出一个沙箱,然后复制镜像里面的一切环境,包括操作系统。
我们就可以直接去docker那开发了,环境开箱即用,减少很多配置环境的时间。
二、Docker原理
同系列系统下使用:
docker会直接基于宿主的内核,启动Docker容器。
例如Ubutun里面,运行CentOS的Docker容器,CentOS就会直接基于Ubutun的Linux内核启动。
如果是跨系统去使用Docker的话:
docker会先启动一个虚拟机,启动一个Docker容器对应的内核,再基于这个内核来启动Docker容器。
例如Windows下启动CentOS的Docker容器,会先启动一个Linux系统的VM,再基于这个VM来启动这个Docker容器。
因此,跨系统使用Docker会导致性能偏低。
Docker for windows为例:
docker会根据配置,现场配置一个虚拟机
所以docker在windows上使用,其实就等同于VM的windows上使用的性能消耗