设为首页 收藏本站
查看: 599|回复: 0

[经验分享] 微服务Docker化注册中心网络处理

[复制链接]

尚未签到

发表于 2018-5-27 09:07:03 | 显示全部楼层 |阅读模式
微服务Docker化
docker网络有三种模式,可以在启动时通过--net=来指定
--net=bridge 默认选项,用网桥的方式来连接docker容器。
--net=host docker跳过配置容器的独立网络栈。本质上来说,这个参数告诉docker不去打包容器的网络层。当然,docker 容器的进程仍然被限制在它自己独有的文件系统、进程列表以及其他资源中。一个快速命令 ip addr 将像你展示docker的网络,它是建立在docker 宿主主机上的,有完整的权限去访问宿主主机的网络接口。注意这不意味着docker容器可以去重新配置宿主主机的网络栈,重新配置是需要 --privaleged=true 这个选项参数的,但是这个选项参数会让docker容器打开大量的端口以及其他的系统的超级管理权限的进程。这也会允许容器去访问宿主主机的网络服务,比如 D-bus。这会使docker容器里的进程有有权限去做一些意想不到的事,比如重启你的宿主主机。所以要谨慎使用这个选项参数。
--net=container:NAME_or_ID 告诉docker让这个新建的容器使用已有容器的网络配置。这个新建的容器将配置新的自己的文件系统和进程列表以及其他资源限制,但是将共享这个指定的容器的网络IP地址以及端口号,使得这两个容器可以通过 loopback接口相互访问。
--net=none 告诉docker为新建的容器建立一个网络栈,但不对这个网络栈进行任何配置。
  在默认情况下10.120.10.128启动微服务
docker run -tid --name microsrv_error -p 9000:9000 -v  /Sioeye/Data/logs/error:/sioeye_apps/logs -v /Sioeye/SioApps/Config/startup_cmd:/sioeye_apps/startup_cmd registry.cn-beijing.aliyuncs.com/sioeye_service_2_0/microsrv_error:8d7035f55a21f1411d732a0cd13b81346fdd4587遇到问题
启动后会在微服务会向注册中心eureka注册自己的服务,由于默认使用bridge模式故无法获取到宿主机本机IP地址,注册到注册中心的地址就为类似cf67c07884bf:error-collector-server:9000 而不是宿主机IP地址,这样无法通过注册中心查找微服务来进行访问,但是可以直接通过宿主机ip 10.120.10.128:9000来进行访问。
解决这个问题有两个思路:
1、通过--add-host方式或者传递变量将宿主机ip传给docker,docker内微服务使用此地址向eureka注册,但这种方式需要修改各微服务代码;
2、直接使用--net=host 使用宿主机网络。此方式仅需要在docker run的时候添加--net=host参数即可。
解决
  重新启动10.120.10.128微服务
docker run -tid --name microsrv_error -p 9000:9000 -v  /Sioeye/Data/logs/error:/sioeye_apps/logs -v /Sioeye/SioApps/Config/startup_cmd:/sioeye_apps/startup_cmd --net=host registry.cn-beijing.aliyuncs.com/sioeye_service_2_0/microsrv_error:8d7035f55a21f1411d732a0cd13b81346fdd4587  查看注册中心: 10.120.10.128:error-collector-server:9000 ,此时即可通过注册中心访问微服务。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-481631-1-1.html 上篇帖子: Docker的一些常用命令 下篇帖子: docker compose 基础
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表