docker consul register
在很多就得文档中都是用的progrium/registrator
但是 在github 中已经换成了 gliderlabs/registrator
- gliderlabs/registrator docker pull gliderlabs/registrator docker run -it -v /var/run/docker.sock:/tmp/docker.sock gliderlabs/registrator consul://{consul-node}:8500
** 如果发生权限错误 ** 在其中加上这一句话 --privileged=true
-internal 使用 容器暴露的port 和使用容器的Ip
-ip <ip address> 声明 Ip 地址,可以告诉服务是运行在那台机的,否则的话,consul 系统会将 Address 设置为 consul node 地址(server or client)
-retry-attempts <number> v7 Max retry attempts to establish a connection with the backend
-retry-interval <milliseconds> v7 Interval (in millisecond) between retry-attempts
-tags <tags> v5 Force comma-separated tags on all registered services
-deregister <mode> v6 Deregister existed services "always" or "on-success". Default: always
-ttl <seconds> TTL for services. Default: 0, no expiry (supported backends only)
-ttl-refresh <seconds> Frequency service TTLs are refreshed (supported backends only)
-resync <seconds> v6 Frequency all services are resynchronized. Default: 0, never
实际开发
在实际测试中由于 我的 consul-node 和 consul-register 不是安装在一台机,而 gliderlabs/registrator 在各种演示中 都是使用的本地的 consul-node ,所以 其不存在 地址问题,而我是使用的远程 consul-node ,所以需要使用 -ip 告诉 consul-node 服务地址
docker run -itd -h 10.10.1.93 -v /var/run/docker.sock:/tmp/docker.sock --privileged=true gliderlabs/registrator -ip=10.10.1.93 -tags=[out] consul://10.10.1.91:8500
所以这里 设置-ip=10.10.1.93 .
而在我的实际开发中又做了spark 容器集群,需要知道 master 的位置,所以 我使用了-internal 来注册 一些容器的内部信息
docker run -itd -h 10.10.1.93 -v /var/run/docker.sock:/tmp/docker.sock --privileged=true gliderlabs/registrator -internal -tags=[internal] consul://10.10.1.91:8500
官网 文档 http://gliderlabs.com/registrator/latest/user/run/