docker - 从一个Docker容器到另一个容器的连接拒绝错误仅针对REST请求

标签 docker spring-boot docker-network

我有两个docker容器apiserver和loginserver。它们都提供REST API,并使用Spring Boot构建。我创建了一个名为my-network的网桥网络,并且两个容器都连接到同一网桥。
我通过交互式 shell 从apiserver ping了loginserver,它可以访问。我从主机发出REST请求,所以我知道套接字暴露了。但是,当我从apiserver向loginserver发出相同的REST请求时,出现错误:

: HttpQueryService::uri=http://172.28.0.7:8090/users/login
2018-06-19 19:08:24.196 ERROR 7 --- [nio-9000-exec-3] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

org.apache.http.conn.HttpHostConnectException: Connect to 172.28.0.7:8090 [/172.28.0.7] failed: Connection refused (Connection refused)

以下是我的网络中的详细信息:
docker network inspect my-network

[
    {
        "Name": "my-network",
        "Id": "ef610688b58b6757cba57caf6261f7a1eaeb083798098214c4848cbb152cae26",
        "Created": "2018-04-21T00:19:46.918124848Z",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "172.28.0.0/16",
                    "Gateway": "172.28.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "71863d2f61789d4350fcabb1330b757500d5734a85c68b60eb1ac8f6f1e8344e": {
                "Name": "mymongo",
                "EndpointID": "717c8dbdc8993a70f9d3e97e549cb9784020b8e68e7a557c30b0818b4c9acb90",
                "MacAddress": "02:42:ac:1c:00:02",
                "IPv4Address": "172.28.0.2/16",
                "IPv6Address": ""
            },
            "936447ce8325f3a7273a7fb462d75e55841a9ff37ccf27647831b3db1b8a1371": {
                "Name": "mypg",
                "EndpointID": "6a1a1b2f7852b89a9d2cb9b9abecdabd134849cd789c31613c7ddb91a4bc43d1",
                "MacAddress": "02:42:ac:1c:00:06",
                "IPv4Address": "172.28.0.6/16",
                "IPv6Address": ""
            },
            "ad03348dffaef3edd916d349c88e8adf6cf7d88dbc40f82dc2384dee826cfa83": {
                "Name": "myloginserver",
                "EndpointID": "fe22c2b5f57b7fe4776087972ffa5f7f089ca6a59fde2fa677848b3f238ea026",
                "MacAddress": "02:42:ac:1c:00:07",
                "IPv4Address": "172.28.0.7/16",
                "IPv6Address": ""
            },
            "c69bfbf9ccdc9e29e87d2847b5c2a51e9c232fb8d06635bcef0cdd1f7c66e051": {
                "Name": "apiserver",
                "EndpointID": "46e94a52d34670eb00448b1d39a0cc365b882ece790c9d868dcee04ad141d1ca",
                "MacAddress": "02:42:ac:1c:00:0b",
                "IPv4Address": "172.28.0.11/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

最佳答案

登录服务器镜像是否暴露了8090端口?用于检查键入命令

docker images 

然后找到您的登录服务器图像的ImageID。然后输入命令
docker inspect image {Login server image id}

在输出中检查ExposedPorts(是否暴露了8090)

关于docker - 从一个Docker容器到另一个容器的连接拒绝错误仅针对REST请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50936012/

相关文章:

docker - 我可以在docker容器中使用pppoe吗?

linux - Docker 容器中同一接口(interface)上的多个 ip

java - 为什么将内部类注入(inject)同一个外部类中的另一个内部类不起作用?

spring-boot - GCP PubSub Spring Boot 重复提取消息

spring - 如何启用 Spring Reactive Web MVC 来处理多部分文件?

端口绑定(bind)8080时Docker无法访问主机中的应用程序

docker - Docker info和Docker ps显示不同数量的正在运行的容器

amazon-web-services - Docker 容器中的 Elasticsearch、AWS 中的集群发现

Docker守护进程(不是容器)无法读取环境变量

docker - 在Rootless模式下运行Docker时是否可以使用桥接网络?