混合架构下的docker-tomcat容器协同部署JAVA WEB服务,内嵌ICE中间件服务的技术实现
2018-03-21 00:00
901 查看
混合架构下的docker-tomcat容器协同部署JAVA WEB服务,内嵌ICE中间件服务技术实现
由于服务端采用的JAVA WEB服务,所以内部嵌套了一套 ICE 服务的协同启用
然而docker容器的IP和物理机的IP是不一样的,外部可以直接访问到物理机的IP,但是无法直接访问docker容器的IP。
造成了ICE的服务无法被外部请求到。**
最终的解决思路有两个,
一个是通过外部物理机进行ICE内部服务的转发,因为物理机是可以请求到docker容器的IP对应的端口的。而后通过其他形式进行请求结果的二次转发。
上述思路起源于ICE集群的注册中心的思路。
但是ICEGrid之类的配置和部署过于生涩复杂,暂时没时间研究这个事情。
所以采用了类似的解决方案,内部物理机转发其上容器的ICE的处理结果。
另外一种解决方案,源自0.0.0.0**的奇妙之处。
在容器内注册服务的时候,绑定这个地址,可以在外部通过外部的IP地址进行访问到**。
那么现在要解决的就是端口映射的问题了。
4、docker-tomcat容器的端口映射
由于tomcat容器内部的命令非常的局限,只能通过容器创建时候的完成端口映射,而无法后续新增外部的端口映射。
这是最优解决方案
如需要转载
请注明文章出处
https://my.oschina.net/u/3032872/blog/1648473
谢谢~
1、背景说明
在跟第三方的交互过程中,由于框架搭建限制,第三方建议使用ICE进行简单的通信由于服务端采用的JAVA WEB服务,所以内部嵌套了一套 ICE 服务的协同启用
2、问题
**ICE服务的启动只能使用到自己所在机器的IP,然而docker容器的IP和物理机的IP是不一样的,外部可以直接访问到物理机的IP,但是无法直接访问docker容器的IP。
造成了ICE的服务无法被外部请求到。**
3、问题的解决思路
这个问题的解决花费了2天时间,尝试过了各种端口映射和IP绑定方案,都无果。最终的解决思路有两个,
一个是通过外部物理机进行ICE内部服务的转发,因为物理机是可以请求到docker容器的IP对应的端口的。而后通过其他形式进行请求结果的二次转发。
上述思路起源于ICE集群的注册中心的思路。
但是ICEGrid之类的配置和部署过于生涩复杂,暂时没时间研究这个事情。
所以采用了类似的解决方案,内部物理机转发其上容器的ICE的处理结果。
另外一种解决方案,源自0.0.0.0**的奇妙之处。
在容器内注册服务的时候,绑定这个地址,可以在外部通过外部的IP地址进行访问到**。
那么现在要解决的就是端口映射的问题了。
4、docker-tomcat容器的端口映射
由于tomcat容器内部的命令非常的局限,只能通过容器创建时候的完成端口映射,而无法后续新增外部的端口映射。
所以我采用了下述的命令 **docker run --privileged=true -v /test.war:/usr/local/tomcat/webapps/test.war -p 10010:10000 -p 8081:8080 --name tomcat7 tomcat:7 ** 内部的tomcat占用8080端口,在外部通过8081进行访问,内部的ICE服务通过0.0.0.0和10000 进行启动,在外部通过物理机的IP+10010端口访问到了ICE服务。
这是最优解决方案
如需要转载
请注明文章出处
https://my.oschina.net/u/3032872/blog/1648473
谢谢~
相关文章推荐
- 关于如何在docker中利用tomcat和MySQL容器部署java web应用的详细步骤
- Docker实践 - 使用maven插件自动部署web应用至Docker容器的tomcat
- shell+ansible+java+tomcat实现web界面自动部署
- Docker学习 -- 使用Docker 的Dockerfile构建tomcat容器,在线部署web项目
- 实战docker,编写Dockerfile定制tomcat镜像,实现web应用在线部署
- Docker实践-使用maven插件自动部署web应用至Docker容器的tomcat
- 用dockerfile配置生成docker image并实现容器部署(redis服务)
- JAVA与.NET“.NET技术”的相互调用——通过Web服务实现相互调用
- 品尝阿里云容器服务:初步尝试ASP.NET Core Web API站点的Docker自动化部署
- JAVA Web快速开发部署(Javarebel实现真正高效的tomcat热部署)
- Docker Tomcat 容器部署 web应用(war)
- 利用Java技术实现基于XML的Web服务
- Docker容器部署Java web应用(容器基础上创建新镜像)
- 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)
- Tomcat容器运行struts2+spring+mybatis架构的java web应用程序简单分析
- JAVA Web快速开发部署(Javarebel实现真正高效的tomcat热部署)
- 关于使用nat123软件实现外网访问内网的部署在Tomcat服务器中的Java Web项目
- 不用重启Tomcat服务实现修改Java文件后自动部署
- 一起谈.NET技术,JAVA与.NET的相互调用——通过Web服务实现相互调用
- 微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)