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

如何解决Docker桥接网络中容器无法通过名称访问的问题

解决Docker默认Bridge网络中容器名称无法解析的问题

你遇到的java.net.UnknownHostException问题,核心原因是Docker默认的bridge网络不支持容器名称的DNS解析。默认桥接网络里,容器之间只能通过IP地址通信,或者用已经被废弃的--link参数,显然这两种方式都不够方便。

解决方案:使用自定义桥接网络

Docker推荐使用自定义桥接网络来实现容器间的名称解析,操作步骤如下:

  1. 创建自定义桥接网络
    执行以下命令创建一个名为zimidy-bridge的自定义桥接网络:

    docker network create zimidy-bridge
    
  2. 停止并重新部署容器到自定义网络
    先停止正在运行的相关容器:

    docker stop zimidy.chat-server.staging zimidy.web-server.staging zimidy.neo4j.staging zimidy.api.staging zimidy.web.staging
    
    • 如果是用docker run启动容器,重新启动时添加--network zimidy-bridge参数,示例:
      docker run --name zimidy.web.staging --network zimidy-bridge -d [你的Web容器镜像]
      docker run --name zimidy.web-server.staging --network zimidy-bridge -d [你的WebServer容器镜像]
      
    • 如果是用Docker Compose管理容器,修改docker-compose.yml文件,为所有服务指定自定义网络:
      version: '3'
      services:
        chat-server:
          image: [你的ChatServer镜像]
          container_name: zimidy.chat-server.staging
          networks:
            - zimidy-bridge
        web-server:
          image: [你的WebServer镜像]
          container_name: zimidy.web-server.staging
          networks:
            - zimidy-bridge
        neo4j:
          image: [你的Neo4j镜像]
          container_name: zimidy.neo4j.staging
          networks:
            - zimidy-bridge
        api:
          image: [你的API镜像]
          container_name: zimidy.api.staging
          networks:
            - zimidy-bridge
        web:
          image: [你的Web镜像]
          container_name: zimidy.web.staging
          networks:
            - zimidy-bridge
      networks:
        zimidy-bridge:
          driver: bridge
      
      修改后执行docker-compose up -d重新部署。
  3. 验证容器间的名称解析
    进入zimidy.web-server.staging容器,尝试pingzimidy.web.staging来验证解析是否正常:

    docker exec -it zimidy.web-server.staging ping zimidy.web.staging
    

    如果能正常ping通,再运行你的Java HttpClient代码,应该就能成功访问了。

补充说明

自定义桥接网络默认启用了DNS服务发现功能,容器之间可以直接通过容器名称(或Compose服务名)通信,这不仅比默认bridge网络更易用,还提供了更好的隔离性和安全性,是Docker官方推荐的容器间通信方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:28:56