Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口
Docker环境和普通生产环境的差异在哪呢?举个列子,在普通的生产环境中,我们程序员写的代码产品在开发环境中能够运行起来,但却在测试环境中很容易出现各种的Bug,报错,这是因为两个环境中机器的配置和环境不一样所导致的
而Docker的出现解决了这一差异性的问题
在举一个列子,平时我们在做开发项目的时候,需要去配置一大堆的环境依赖,而当我们需要将项目迁移到其他主机或者平台的时候,那是不是也要将一大堆的配置环境依赖同样进行迁移,显得相当的麻烦
像平时我们在生产环境中,会去做集群,负载均衡,来让多台服务器共同承担一个责任,分摊访问流量的压力,当我们部署好一台服务器时,你还需要更多一摸一样的服务器,这个时候,你应该怎么办呢?是不是得将环境依赖什么的从头到尾重新安装一遍,是不是会非常麻烦
所以归根结底,突出两个问题,一是环境一致性的问题,二是重复配置,浪费时间的问题,所以Docker的出现解决了这两个问题
你可以把Docker理解成一个镜像,当我们需要在其他服务器上配置相同的项目环境时
我们使用Docker相当于复制了一个环境过去,极大解决了硬件环境所造成的环境差异性的问题和需要重复配置环境的问题
那我们Docker的概念是不是和虚拟机有些相同?那Docker和虚拟机的差异又在哪呢?
虚拟机和Docker的对比: