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

不同Docker桥接网络下容器间特定端口互通方法咨询

搞定Docker不同桥接网络容器间通信的几种方法

嘿,我来帮你解决这个问题!你已经建了两个独立的桥接网络net1和net2,现在要让container1访问container2的80和4321端口,又不想用macvlan驱动,这几个方案绝对靠谱:

方案1:让容器跨网加入另一个网络

这是最直接省事的方法——把container2也加入net1网络,这样两个容器就处于同一个网络环境里,直接用容器名就能访问对方的端口。

执行这条命令就行:

docker network connect net1 container2

之后container1直接用container2:80或者container2:4321就能访问对应的端口了,Docker自带的DNS会自动把容器名解析成对应的IP,不用记复杂的地址。

方案2:利用宿主机端口映射访问

如果不想让容器跨网络,也可以用你已经配置的端口映射来实现。container2已经把80端口映射到了宿主机的5678端口,那container1可以通过宿主机的IP加上映射端口来访问:

  • 访问container2的80端口:直接用宿主机IP:5678
  • 访问container2的4321端口:你得先给container2加个这个端口的映射,要是容器还没启动,启动的时候加参数:
docker run -it -d --net=net2 --name container2 -p 5678:80 -p 9876:4321 ....

要是容器已经在运行了,就用这条命令更新:

docker container update --publish-add 9876:4321 container2

之后container1用宿主机IP:9876就能访问container2的4321端口了。不过这个方法依赖宿主机网络,性能会比直接跨网络连接稍差一点。

方案3:创建共享桥接网络

如果以后还有更多容器需要跨网络通信,不如建一个专门的共享桥接网络,把两个容器都连上去:

  1. 先创建共享网络:
docker network create shared-net
  1. 把两个容器都连接到这个新网络:
docker network connect shared-net container1
docker network connect shared-net container2

这样两个容器在shared-net里能互相访问,同时还保留各自原来的net1和net2网络连接,两边的业务都不受影响,扩展性也更好。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:24:04