Dockerfile详解

回首往事、写给曾经的自己

  docker是一个好东西、但是官方文档的组织方式不太合理,它在介绍完成docker的基本概念之后,直接就操了一段dockerfile。在我当时还

  是一个初学者的时候,dockerfile成为了学习路上最大的障碍。

 

  现想回想起来一个主要的问题是,dockerfile太突然了! 没有“起承转合”上来就直接“刚”。好在我比较的“坚韧不拔,不抛弃不放弃”最终

  还是get到了dockerfile的哲学

 

从虚拟机到docker

  在实现的软件开发上线过程中,常常会遇到这样的事,测试同学在开发环境上测试的的时候,软件的功能是正常的;但是它在测试环境上对软件

  的功能进行测试的时候发现软件直接报错了,或是功能不对,最后以整个公司之力去排查问题,结果发现只是用了一个比较老的jar包;两样的问题

  可能在生产环境上还要再发生一次。次数多了之后开发同学开始变得不自信了,你问他这个版本的程序在客户的主机上能正常运行吗?他会说不太

  确定,这个要看情况 。

 

  我见过的比较大胆的做法,软件公司把自己的软件安装在虚拟机上,在测试通过后,他们发布的不是软件,而是是整个虚拟机。VMware真是的爱死

  他们了。用户那里只要安装有对应版本的VMware就行了,他们通过发布VMware镜像的方式发行自己的软件,虽然看上去有点豆,

  不可否认是解决了他们的问题。

 

  上面的做法太笨重了,每次发布一个windows-server-2008 + .net framework + 软件 好几十个G呀!然而这几十个G中大多数的内容对于目标

  软件来说是无用的

 

  docker 做了什么呢?事实上docker的做法和上面的发布vmware的镜像的做法差不多,只不过docker的做法减少了大量的无用内容的发布,这

  这docker发布的镜像在体积上就要小上不少。

 

  

  

 

  docker一直在强调它能做到“开发环境”与“生产环境”的完全一致,

 

 

 

 

---

posted on 2018-06-18 17:54  蒋乐兴的技术随笔  阅读(234)  评论(0编辑  收藏  举报

导航