「码呗学院」聊一聊互联网公司Docker容器化是如何实践的?( 七 )

由于采用的是部分服务做docker化,老的服务可能需要访问新的服务,但是这个时候,老服务在利用Dubbo调用新服务的通信的时候,发现对方注册是IP地址无法访问,原因就是docker容器内的Dubbo提供的服务,注册上去的其实是个虚拟IP地址,和原有老的服务根本就不同一个网络内。所以网络单向是不通的,网络调用结构如下图:

「码呗学院」聊一聊互联网公司Docker容器化是如何实践的?

既然是网络的问题,那么针对该问题的解决方案也列了几个:

方案一:所有服务进行docker容器化部署,这样的话所有服务就处于同一个虚拟网络段内,但是这个迁移的成本和风险非常大。

方案二:基于物理层面网络做修改配置,但是这种维护的成本较大,可扩展性不好。

方案三:更改容器内服务运行的网络,采用host的方式配置,这种方式其实并没有充分利用容器化带来的便利之处,但是确实最简单解决这个问题的方法,所以最终考虑,选择这个方案解决,而后期的优化方案,去Dubbo化。

推荐阅读