V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ll0504
V2EX  ›  Docker

docker 环境 springcloud 微服务调试怎么做

  •  
  •   ll0504 · 2021-04-28 12:28:52 +08:00 via Android · 1806 次点击
    这是一个创建于 1306 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有台测试服务器,把微服务各个模块部署到了测试服务器上的 docker 里,一个服务一个容器.各个服务会把自己的容器 ip 注册到一个 nacos 的服务容器里,测试环境各个服务之间可以通过调用容器 ip 实现访问。现在我要调试其中的一个服务 a,在本地 idea 起一个 a 服务连接到测试环境的 nacos,如果我本地的服务 a 需要调用测试环境的服务 b 的时候 ,获取的是服务 b 容器的 ip 172 开头的,这时调用会失败。

    应该怎么做,我才能直接从本地能够调用容器 ip?

    或者有没有其他更适合的调试方案方便我在本地起代码环境调试测试上的微服务?
    第 1 条附言  ·  2021-04-28 15:56:52 +08:00
    最近两天了解到的
    1.dokcer 集群部署:用 K8s +Kt Connect 来调试 https://www.cnblogs.com/linyb-geek/p/13793462.html
    2.docker 单机部署:打通 docker 与本地的网络,
    -- docker 网络用 host 直接使用的是宿主机 IP,不存在访问不到
    -- docker 网络用 bridge 是通过端口映射访问容器的,无法直接调用容器 IP
    -- docker 网络用 macvlan 可以指定一个宿主机局域网网络的 ip
    ---- ---- docker network create -d macvlan --subnet=192.168.245.0/24 --gateway=192.168.245.2 -o parent=ens33 mac1 但是这种在首次运行容器的时候必须要指定一个未被占用的局域网 ip,否则可能跟局域网 IP 冲突
    4 条回复    2021-04-28 15:45:12 +08:00
    ljhrot
        1
    ljhrot  
       2021-04-28 14:04:11 +08:00
    如果确实需要通过 IDE 对测试环境进行断点调试也不是做不到,我建议你阅读一下 [spring-boot-docker]( https://spring.io/guides/gs/spring-boot-docker/) 这一篇 guide 的 **Debugging the Application in a Docker Container** 小节,配合 IDEA 的远程调试还是很不错的。

    也可以直接将 springcloud 集群通过 docker 的端口映射将服务暴露出来,nacos 注册配置是可以指定服务本身的 ip,配置成宿主机 ip 就可以了,对于基于 HTTP 的 RPC 调用应该是可行的,不过我没有亲自实践过。

    对生产或者测试环境 debug 更多应该依赖服务本身输出的日志,错误异常栈就是你定位问题的利器。
    我觉得你应该直接把错误信息贴出来
    xiayun
        2
    xiayun  
       2021-04-28 14:30:49 +08:00
    应该是容器地址与本地地址不通的问题,可以将容器网络模式调整成 host 本地网络,修改服务端口
    ll0504
        3
    ll0504  
    OP
       2021-04-28 15:43:52 +08:00
    @ljhrot 你说的远程调试确实也是一种方案,我在想有没有其他不用远程调试的方案。基于 host 的容器网络的访问宿主机 ip 可以直接访问到容器,之前没有接触过 docker 这块儿,想了解一下大家相同场景都怎么解决的。
    ll0504
        4
    ll0504  
    OP
       2021-04-28 15:45:12 +08:00
    @xiayun host 这个可以,你有做过这个场景下的代码调试吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3325 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:49 · PVG 08:49 · LAX 16:49 · JFK 19:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.