求助,外网无法访问 docker bridge 模式的容器服务

2020-07-01 17:41:03 +08:00
 jinhan13789991
先说一下情况,我有一台服务器,在内网中,上面跑 docker 开各种服务。
内网可以访问 docker 容器中的各种服务。
现在有一台路由器,有外网 ip,路由器开端口映射到 nas 上。
问题来了,我发现 docker 容器如果是 bridge 的网络模式,外网就无法访问。 内网可以。
把 docker 容器网络模式该称 host,外网就可以访问。
我有限的网络知识无法理解这个问题。特来求助 v 友

目标就是外网能够访问 docker bridge 模式下容器的服务
4264 次点击
所在节点    Docker
8 条回复
Latin
2020-07-01 17:43:56 +08:00
docker bridge 会创建一块网卡的,你要做的是将 bridge 的端口映射到宿主机的端口就 ok 了。不要直接访问 docker 那块网卡。
jinhan13789991
2020-07-01 17:55:13 +08:00
@Latin 我是在容器运行的时候指定 --net='bridge' 和端口 -p '2368:2368/tcp' ,没有别的操作
Latin
2020-07-01 18:11:55 +08:00
你通过宿主机的 ip:2368 可以访问吗
jinhan13789991
2020-07-01 18:20:41 +08:00
@Latin 可以,没问题,整个局域网都能正常访问。
但是路由器映射了 2638 端口,外网不能访问
把容器网络改成 host 模式,外网和内网都可以访问
jinhan13789991
2020-07-01 18:38:19 +08:00
总结就是
外网和内网是可以正常通讯
内网和 Docker bridge 可以正常通讯
外网和 Docker bridge 不通
Latin
2020-07-01 18:52:12 +08:00
桥接和直连理论都是可以的,桥接还有一个可能就是防火墙没有放行。
jinhan13789991
2020-07-01 19:50:34 +08:00
@Latin 非常感谢,最后发现是旁路由的问题。
我有个旁路由,一些局域网设备是手动指定网关到旁路由的。 我把网关指向主路由,问题就解决了。。
jinhan13789991
2020-07-01 19:55:46 +08:00
宿主机之前网关是指向旁路由的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/686323

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX