spring-boot - 来自 docker 的 Consul 共享网络

标签 spring-boot docker consul spring-cloud-config spring-cloud-consul

docker中有consul server。

  vote-consul-server:
    image: consul:1.7.2
    environment:
      CONSUL_BIND_INTERFACE: eth0
    ports:
      - "${CONSUL_PORT}:8500"

它为注册的应用程序生成主机。 主要问题是,如果其他应用程序不在 docker 中,则它们之间无法相互通信。

例如:我有配置服务(docker with consul),用户服务(IDE)。 当 user-service 启动时,它会从 config-server 请求配置,但 consul 给出的链接不正确(仅在 docker 网络中可用)。

c.c.c.ConfigServicePropertySourceLocator : Fetching config from server at : http://83a6c7ab12d0:8888/

如何从 consul(docker) 发布所有链接?

最佳答案

由于每个容器都有自己的IP并且可能有自己的网络,你可以尝试使用host网络:

docker run --rm -d --network host --name vote-consul-server

有关详细信息,请参阅 host networking tutorial .

此外,您还可以了解 networking from the container’s point of view

关于spring-boot - 来自 docker 的 Consul 共享网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61039841/

相关文章:

angular - 在 IntelliJ 中的本地 Tomcat 上部署 Spring Boot

docker - 是否可以在minikube中放置固定的IP和端口?

docker - 如何引用容器内的非docker IP地址?

Spring boot 从领事服务器获取属性

java - 如何将Spring-boot服务注入(inject)aspectj类?

java - Spring 启动-com.mysql.jdbc.spring启动异常.jdbc4.MySQLSyntaxErrorException : Unknown column 'customer0_.email' in 'field list'

java - 使用自定义 ItemReader 调用带有 IN 和 OUT 参数的存储过程

docker - 如何在 Dockerfile 中声明命名卷?

docker - 本地领事加入K8s领事Mac

amazon-web-services - 如何通过 CloudFormation 在不同 Fargate 任务中运行的 Consul 服务器将 Consul 代理加入 Consul 集群?