使用docker部署web应用的一些疑问


小弟我在公司负经常责部署生产环境,例如最近的项目有5个tomcat应用,nginx,redis,rockermq,和一个springboot的jar包提供服务.我现在需要在测试环境上部署,然后又要在生产环境上部署,但是一遍有一遍的装这些软件装得我想吐了.最近一直在寻找简单的方法,结果找到了docker.弄了一会儿后发现有不少疑问,希望大佬们给点指示:
1.我搜索了资料,发现说最好一个服务一个容器,那么我这是不是要弄9个镜像,来启动9个容器啊?
2.部署到生产环境是不是直接将测试环境的9个container容器commit为image后在迁移到生产服务器?
3.每个镜像都带一个操作系统,会不会造成很大的资源浪费,比如硬盘空间,内存,cpu等.比如一个nignx的镜像就108M,而一个nginx应用要小得多,这样拷贝的时候是不是更费时间.
4.每个container的提供服务端口是直接映射到宿主机呢还是怎么处理?
已邀请:

lolazz

赞同来自:


个人建议思路供参考,可以几个基础centos镜像,如只有centos,centos+jdk,centos+jdk+tomcat等,,然后这9个基于这些镜像用build dockerfile方式打包镜像,不要用commit,这样的镜像是包含分层的,每层镜像只有一个公共的。至于镜像优化,可以参考网上文章。

要回复问题请先登录注册