You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让本地主机上的两个Docker容器实现相互通信?

解决Docker容器前后端Connection Refused问题

这个问题我碰到过好多次了,核心原因是你前端代码里的localhost:8090指向不对——容器里的localhost是前端容器自己的本地回环,根本找不到后端容器。哪怕你把两个容器加到同一网络,用localhost也没用,得用容器名称来做DNS解析。咱们一步步来解决:

1. 创建自定义Docker网络

默认的bridge网络虽然能让容器互通,但自定义网络支持自动的容器名DNS解析,用起来更靠谱:

docker network create app-network

2. 启动后端容器并加入网络

启动的时候给后端容器起个明确的名字(比如back-end),同时指定加入刚才创建的网络:

docker run -p 8090:8090 --network app-network --name back-end -d repo/back-end

3. 启动前端容器并加入同一网络

同样把前端容器加入app-network:

docker run -p 8080:8080 --network app-network --name front-end -d repo/front-end

4. 修改前端接口地址

把前端代码里的localhost换成后端容器的名称back-end,这样Docker的DNS会自动把这个名称解析成后端容器的IP:

protected <T> ResponseEntity<T> getRequest(String path, Class<T> responseType) {
 return restTemplate.getForEntity("http://back-end:8090/" + path, responseType);
}

额外注意点

  • 确保后端服务确实在容器内部监听0.0.0.0:8090(而不是只监听127.0.0.1),不然即使网络通了也访问不到
  • 如果后续用Docker Compose来管理容器会更省心,它默认会创建专属网络,直接用服务名就能互相访问

内容的提问来源于stack exchange,提问作者BeerEye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:32:57