前言
Docker的诞生
毫无疑问,DocKer成了近些年来最火热,甚至最具颠覆性的技术之一。首先,我们在传统项目简单描述一下,项目发布的基本流程。
-
本地开发+测试,没有问题的话,编译打包发布到测试环境
-
在测试环境中进行测试,测试完成后,发布到生产环境
-
在生产环境中进行最后的测试,如果没有问题,那么一切就OK了
如果你是从事了一年以上开发人员,我想100%的人都亲身经历过这样的事情 —— 在自己本地测试都没有问题,发布到测试环境、生产环境后,就出现问题了!搞得自己非常苦恼!非常纠结!到底是哪里出了问题呢?明明代码什么的都一样啊~
那么在这种情况下,其实是有N种可能,但我这这里提出一个比较常见的原因,就是:
本地开发环境与测试环境、生产环境上的软件环境配置,可能出现不一致的情况,导致有些时候相同的代码在不同的环境下运行会出现问题。
存在问题:不同机器上的软件环境不一致。(比较核心的问题)
再列举几个实际开发中遇到的情况:
公司在阿里云买了一台新服务器,要想能正常发布项目等,前提是需要在服务器上重新安装一些软件环境(比如node、mysql、nginx等),在安装软件环境的过程中,很大几率会出现配置错误的情况;一些比较复杂的环境配置步骤会很多,很多人都记不清具体的步骤和命令,还得上网搜索…
存在问题:软件环境的配置繁多、命令记不清楚。
像jdk、tomcat等基础的环境搭建,都已经很熟练了,每次有新机器的时候,都要重新搭建,这样就造成了重复性工作、效率低下、配置繁琐麻烦、易出错等情况。
存在问题:重复性搭建软件环境、效率低下。
当然也会有其他的问题,这里就不多做说明了。
因此,我们在开发完毕之后,如果我们要部署10个项目,那就需要找10部虚拟机,然后再给对应的10部虚拟机部署对应的10个环境,重复性