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

不使用Docker Compose,如何通过docker run参数实现Docker容器互联?

解决方案:使用自定义Docker网桥实现容器间稳定访问

不用Docker Compose的话,自定义Docker网桥是最适合的生产级方案,它自带容器名DNS解析能力,彻底解决容器IP变动导致的访问失效问题,步骤全部通过docker run参数实现:

具体操作步骤

  • 先创建一个自定义网桥(仅需执行一次):
    docker network create my-app-bridge
    
  • 启动容器B时,指定加入这个网桥:
    docker run --name container-b --network my-app-bridge [你的B容器其他启动参数] your-b-image:tag
    
  • 启动容器A时,同样加入这个网桥:
    docker run --name container-a --network my-app-bridge [你的A容器其他启动参数] your-a-image:tag
    
  • 现在容器A里直接用容器名访问B的API即可:
    fetch("http://container-b/api")
    

关键原理说明

自定义网桥和默认的bridge网桥最大区别是:内置了Docker DNS服务,会自动维护容器名到IP的映射。不管容器B重启多少次,只要容器名不变,容器A里的请求都会被正确解析到B的新IP,完全不用手动修改IP。

关于--add-host=host.docker.internal:host-gateway的说明

这个参数是用来让容器访问宿主机上的服务的,和容器之间互访的需求无关,对你当前场景没用,可以忽略。

未来新增容器C的适配

后续要加容器C并连接A时,只需要启动C时同样加上--network my-app-bridge参数,C里直接用http://container-a/xxx就能访问A的服务,同理A也能通过容器名访问C,无需额外配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 22:55:10