TKD53 发表于 2023-8-27 00:27

请教一下如何局域网直接访问docker网络

网络结构大致是这样的


现在访问qbittorrent的话是通过192.168.3.3:端口来访问的,请教一下怎么设置能够通过10.0.3.10:端口来访问qbittorrent?

すぴぱら 发表于 2023-8-27 00:30

FUZE 发表于 2023-8-27 00:34

TKD53 发表于 2023-8-27 00:36

すぴぱら 发表于 2023-8-27 00:30
你的nas是192.168.3.3 那docker容器自然也是192.168.3.3,把容器的端**露出来,10.x.x那是虚拟网卡的地址 ...

有没有办法在openwrt添加设置,可以直接访问10.0.3.* ?比如添加虚拟网卡之类的
我在nas上ping 10.0.3.* 是通的,但是在笔记本上是ping不同的

TKD53 发表于 2023-8-27 00:38

FUZE 发表于 2023-8-27 00:34
看看你docker是用的什么网络模式
如果是网桥模式的话那么就是192.168.3.3:端口号
或者也可以给这个容器单 ...

用的是网桥,就是想让docker的网络在单独的网段

calvary 发表于 2023-8-27 00:39

TKD53 发表于 2023-8-27 00:36
有没有办法在openwrt添加设置,可以直接访问10.0.3.* ?比如添加虚拟网卡之类的
我在nas上ping 10.0.3.*...

openwrt加条静态路由,目标地址10网段下一跳(op里面好像叫网关)指向3.3就行了

すぴぱら 发表于 2023-8-27 00:41

TKD53 发表于 2023-8-27 00:43

calvary 发表于 2023-8-27 00:39
openwrt加条静态路由,目标地址10网段下一跳(op里面好像叫网关)指向3.3就行了 ...

这样可能有点问题,比如docker两个容器
qbittorrent - 10.0.3.10
jellyfin - 10.0.3.11

只有给这两个容器设置不同的对外暴露端口,才可以用192.168.3.3访问,如果端口相同就不行了

TKD53 发表于 2023-8-27 00:46

すぴぱら 发表于 2023-8-27 00:41
docker-compose里面port配置端口映射 比如9000:80,就是把容器的80映射在主机的9000端口,后面访问容器就 ...

现在就是这么做的
我其实是想在openwrt添加静态host解析,比如访问域名`qbittorrent`和`jellyfin`就可以访问到对应的服务,而不需要用ip:port的方式访问

calvary 发表于 2023-8-27 00:51

TKD53 发表于 2023-8-27 00:43
这样可能有点问题,比如docker两个容器
qbittorrent - 10.0.3.10
jellyfin - 10.0.3.11

直接访问10网段访问的是容器的原始端口,不是docker映射后的端口,不存在冲突问题

2stage 发表于 2023-8-27 00:54

本帖最后由 2stage 于 2023-8-27 01:42 编辑

TKD53 发表于 2023-8-27 00:46
现在就是这么做的
我其实是想在openwrt添加静态host解析,比如访问域名`qbittorrent`和`jellyfin`就可以 ...

可以弄一个本地DNS 把qbit 这些解析到 ip:port。
编辑:经楼主提醒,dns 只能解析到 ip,不能添加端口。

—— 来自 S1Fun

すぴぱら 发表于 2023-8-27 01:00

TKD53 发表于 2023-8-27 01:02

calvary 发表于 2023-8-27 00:51
直接访问10网段访问的是容器的原始端口,不是docker映射后的端口,不存在冲突问题 ...

那如果我两个容器都设置对外暴露80端口的话,我该怎么分别访问这两个服务呢?

calvary 发表于 2023-8-27 01:07

TKD53 发表于 2023-8-27 01:02
那如果我两个容器都设置对外暴露80端口的话,我该怎么分别访问这两个服务呢? ...

容器原始端口是80,那么访问端口也是80,跟你docker设置对外端口无关。
举个例子,你容器地址是10.0.3.10,原始端口是80,docker设置映射对外端口是8080,那么可以通过下面两种方式访问:
10.0.3.10:80
192.168.3.3:8080

TKD53 发表于 2023-8-27 01:16

calvary 发表于 2023-8-27 01:07
容器原始端口是80,那么访问端口也是80,跟你docker设置对外端口无关。
举个例子,你容器地址是10.0.3.10 ...

那如果是多个容器呢

TKD53 发表于 2023-8-27 01:17

2stage 发表于 2023-8-27 00:54
可以弄一个本地DNS 把qbit 这些解析到 ip:port。

—— 来自 S1Fun

DNS解析无法添加端口吧

TKD53 发表于 2023-8-27 01:19

すぴぱら 发表于 2023-8-27 01:00
你可能需要的是nginx + dnsmasq

nginx确实是一个办法...但还是想作为最终方案,如果能通过路由器解决就最好了

calvary 发表于 2023-8-27 01:33

TKD53 发表于 2023-8-27 01:16
那如果是多个容器呢

不同容器地址肯定不一样呀,比如
10.0.3.9:80
10.0.3.10:80

2stage 发表于 2023-8-27 01:47

TKD53 发表于 2023-8-27 01:17
DNS解析无法添加端口吧

确实不行。可以考虑下 heimdall 这种导航页。

—— 来自 S1Fun

袄_偶滴小乔 发表于 2023-8-27 01:49

TKD53 发表于 2023-8-27 00:46
现在就是这么做的
我其实是想在openwrt添加静态host解析,比如访问域名`qbittorrent`和`jellyfin`就可以 ...

反正都是局域网用你浏览器存个书签不行吗

TKD53 发表于 2023-8-27 01:57

calvary 发表于 2023-8-27 01:33
不同容器地址肯定不一样呀,比如
10.0.3.9:80
10.0.3.10:80

试了一下确实可以,谢谢
页: [1]
查看完整版本: 请教一下如何局域网直接访问docker网络