docker registrator配合consul使用的问题
docker registrator配合consul使用的问题
chris_2009 发表于2年前
docker registrator配合consul使用的问题
  • 发表于 2年前
  • 阅读 588
  • 收藏 2
  • 点赞 1
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

摘要: 上一篇文章中有介绍使用registrator将docker容器启动的服务注册到consul,再用consul-template自动更新ngnix配置,实现系统服务的自动发现。

上一篇文章中有介绍使用registrator将docker容器启动的服务注册到consul,再用consul-template自动更新ngnix配置,实现系统服务的自动发现。

在多个docker主机的情况下存在以下问题:
registrator获取的是本地地址:例如:

{
    "Node":"consulserver",
    "Address":"172.17.0.5",
    "ServiceID":"registrator:dockercompose_web_7:80",
    "ServiceName":"web",
    "ServiceTags":["backend"],
    "ServiceAddress":"172.17.0.4",
    "ServicePort":80,
    "ServiceEnableTagOverride":false,
    "CreateIndex":17,
    "ModifyIndex":17
}

解决办法

在registrator注册时将地址替换为外网地址
其中使用到consul的服务注册和服务列表

  • 服务注册
    curl -X PUT -d '{"Node": "consulserver", "Address": "192.168.17.161","Service": {"Service": "web", "tags": ["backend"], "Port": 32778,"ServiceAddress":"192.168.17.161"}}' http://127.0.0.1:8500/v1/catalog/register
  • 服务列表
    curl http://127.0.0.1:8500/v1/catalog/service/web
    注册以后的地址:
    { 
     "Node":"consulserver",
     "Address":"192.168.17.161",
     "ServiceID":"registrator:dockercompose_web_7:80",
     "ServiceName":"web",
     "ServiceTags":["backend"],
     "ServiceAddress":"",
     "ServicePort":80,
     "ServiceEnableTagOverride":false,
     "CreateIndex":17,
     "ModifyIndex":17
    }
共有 人打赏支持
粉丝 4
博文 10
码字总数 8066
×
chris_2009
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: