码迷,mamicode.com
首页 > Web开发 > 详细

docker+ssh+webservice

时间:2015-08-01 07:48:38      阅读:396      评论:0      收藏:0      [点我收藏+]

标签:

        在项目中需要动弹发布webservice,程序是部署在docker中的tomcat里的,这个时候需要在系统启动时发布webservice,webservice绑定的IP地址仍然是宿主主机的IP地址,发现系统启动时webserivce总是发布不成功,总是报类似于这个异常:Could not start Jetty server on port 9,000: Cannot assign requested address。百思不得其解,思维方向也走偏了,总以为是哪里设置不对,导致docker容器已经提前占好要要发布的端口(因为在Dockerfile文件中已经EXPOSE这个端口了),结果陆陆续续折腾了几天,先后把docker这里相关的知识试了个遍,结果还是毫无进展,到网上也找不到答案。

        直到昨晚临睡前,脑子中想了下docker的原理和结构图,忽然间想到docker的本质原理就是“映射”,docker容器的IP地址和端口和宿主主机也是一一映射的,而程序是部署的tocmat运行在docker容器中,所以其中如果运行程序当然不能是宿主主机的地址了,而应该站在容器的角度去考虑,是容器主机的地址,把具体翻译和映射的工作交给docker。而不是直接绑定宿主主机的IP,那么绑定什么地址呢?我想到了tomcat中的应用本身是正常的,tomcat可以正常访问,那我就直接模仿tomcat就行了,于是使用docker port命令查了下tomcat,得到的结果是绑定在”0.0.0.0“这个IP上,而这个IP的意思是本机(本容器)的所有IP,关于”0,0.0.0"的知识读者可以自己查更多的其他资料。于是赶紧试了下,果然成功了!

         问题解决了,有点小高兴,但是也看出自己处理问题过程中的方法和思路问题很大。在遇到问题时,没有冷静一个点一个点去分析,而是东拉西扯乱打一气,浪费了很多时间,对不起给我付薪水的东家啊!其实处理问题时,我也预感到这个一定是个低级问题,果然如此。以后必须这样严格要求自己了,如果遇到这种问题,一定要冷静分析。

版权声明:本文为博主原创文章,未经博主允许不得转载。

docker+ssh+webservice

标签:

原文地址:http://blog.csdn.net/achilles12345/article/details/47182249

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!