Solon

问题:docker 里的服务注册后找不到ip?

</> markdown

docker 里的服务,如果向外部的中间件进行服务注册。默认情况下,使用的是 docker 内部的 ip,外部的服务无法访问其 ip。

1、使用包装器配置

此时,需要借用包装器配置。docker 相当于是服务的包装器,有自己的宿主ip和port:

server.wrapPort: 8080  #v1.12.1 后支持
server.wrapHost: "1.10.12.7"

有此配置后,服务注册时(以及别的与外部服务交互的设定)会使用包装器的 ip 和 prot。外部的服务即可访问到了。

2、更多包装器配置

如果有多种通讯信号,可以按不同信号配置:

server.wrapPort: 8080  #v1.12.1 后支持
server.wrapHost: "1.10.12.7"

#//或者具体信号分别指定

server.http.wrapPort: 8080  #v1.12.1 后支持
server.http.wrapHost: "1.10.12.7"

server.socket.wrapPort: 8180
server.socket.wrapHost: "1.10.12.7"

server.websocket.wrapPort: 8280
server.websocket.wrapHost: "1.10.12.7"