请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

docker打包服务运行,怎么注册真实地址到consul?

我的服务采用docker打包并运行,按课程前面服务注册的做法,此时服务注册用的ip和port是docker内部的地址,不是宿主机的真实地址。

Google到的方案是,在docker运行时把宿主机ip和port传递进去,在服务内部使用宿主机的ip和映射port来进行注册

想问下还有其他方案来解决这个问题吗?

因为docker批量化运行时可能就会随机使用port

正在回答 回答被采纳积分+3

1回答

bobby 2022-10-25 13:29:15

ip地址外部是可用的,知识port端口号不能随便使用,实际开发中建议传递参数进去, 否则会带来更多不确定的其他问题,部署在宿主机上可以随意定义端口

0 回复 有任何疑惑可以回复我~
  • 提问者 fiecato #1
    嗯,我知道老师的意思。
    
    我的疑惑在于,比如一个user-service启动三个docker,这个容器暴露的端口都是统一的9000,外部宿主机和容器绑定时分配的可能是30320,30321,30322这样式的,这样每个容器启动的时候去注册consul时都需要宿主机在启动容器时把ip+port传递进来,是不是不太好啊
    回复 有任何疑惑可以回复我~ 2022-10-26 19:25:11
  • bobby 回复 提问者 fiecato #2
    你的想法很严谨,可以将这些docker映射到同一个network之下, 这样就可以随机端口了,同时,ip使用docker内部的ip也没问题,实际上这些使用k8s的话都会帮我们完成
    回复 有任何疑惑可以回复我~ 2022-10-28 20:18:16
  • 提问者 fiecato 回复 bobby #3
    好的,明白了
    回复 有任何疑惑可以回复我~ 2022-11-03 19:42:26
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信