Docker容器网络:无法在两个容器之间建立连接

问题描述 投票:0回答:0

我创建了两个容器;一个正在运行 spring boot eureka 名称服务器,另一个正在运行 java 应用程序。这两个容器在同一个桥接网络上。

NETWORK ID     NAME              DRIVER    SCOPE
4554021e2f79   docker_ambuli     bridge    local

docker container ls
的缩短输出:

0de2fa36c342   ambuli/ms-1:0.0.1-SNAPSHOT  0.0.0.0:8000->8000/tcp, :::8000->8000/tcp   
878eb80bc7e4  ambuli/ms-2:0.0.1-SNAPSHOT  0.0.0.0:8761->8761/tcp, :::8761->8761/tcp   

容器的IP地址:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 0de2fa36c342
172.27.0.3

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 878eb80bc7e4
172.27.0.2

docker network inspect -f '{{range .Containers}}{{.Name}} {{end}}' 4554021e2f79
是说两个容器在这个 网络。

一切似乎都很好。但是,Java 抛出连接超时异常。 通过wireshark跟踪,我可以看到SYN消息是从172.27.0.3(myService)发送到172.27.0.2(nameing-server)的。但是,没有回复。

java错误是: 例外是 org.apache.http.conn.ConnectTimeoutException:连接到命名服务器:8761 [命名服务器/172.28.0.2] 失败:连接超时

任何帮助将不胜感激。非常感谢。

我有以下yaml文件:


    version: '3'
    
    services:
      naming-server:
        image: ambuli/ms1-naming-server:0.0.1-SNAPSHOT
        mem_limit: 700m
        ports:
          - "8761:8761"
        networks:
          - ambuli
          
      my-service:
        image: ambuli/ms1-myservice:0.0.1-SNAPSHOT
        mem_limit: 700m
        ports:
          - "8000:8000"
        networks:
          - ambuli
        links:
          - naming-server 
        depends_on:
          - naming-server
        environment:
          EUREKA.CLIENT.SERVICEURL.DEFAULTZONE: http://naming-server:8761/eureka
    networks:
      ambuli:
java spring-boot docker docker-compose docker-networking
© www.soinside.com 2019 - 2024. All rights reserved.