求生专家贝尔·格里尔斯需要盖一个房子,于是他搬石头、砍木头、画图纸、盖房子。一顿操作,终于把这个房子盖好了。
结果,住了一段时间,心血来潮想搬到海边捕捉海牛请亲友吃烧烤。这时候按以往的办法,他只能去海边,再次搬石头、砍木头、画图纸、盖房子。
烦恼之际,《荒野求生》栏目带来一种叫做镜像的东西,可以把他盖好的房子复制一份,搬家时只需要把镜像放在背包里。
等他到了海边,就用这个「镜像」,复制一套房子,拎包入住。
对应到项目中来,房子就是项目本身,镜像就是项目的复制,背包就是镜像仓库。
如果要动态扩容,从仓库中取出项目镜像,复制就可以了。Build once,Run anywhere!
在工作中,一款产品从开发设计到上线运行,开发人员负责代码编写、开发产品,测试、运维工程师需要测试环境,产品部署。这之间就会有分歧。
例如开发的一个电商项目,其中包括 Java 环境/Tomcat/ MySQL / JDBC 驱动包/相应 jar 包,还有SSM框架及搜索引擎Solr等技术,仅仅是在windows系统上协调这些项目的版本,保证环境不冲突及项目正常运行,就需要大量时间来调试,而我们技术人员往往在windows系统上开发及调试,那么上线的时候需要部署到linux系统中,这就会导致由于环境不同的产品部署问题。
往往就算不跨系统,而是换一台同样操作系统的服务器,要移植部署依然很麻烦,那么为了解决这个问题,Docker就体现出了他的用处!