请问 能否可以设置一条规则, 实现容器内部(docker0 网桥下的容器)访问主机上监听 127.0.0.1 的防火墙规则。
我的理解是 容器内部的流量从 docker0 网卡出来 会走到 eth0 网卡 然后 dnat 以下就行
实际上不能这样配置,这种路由可行吗
1
liuxu 2022-08-04 17:37:28 +08:00
docker network 直接使用 host driver
|
2
yingqiuQAQ OP @liuxu 嗯嗯这是一种办法 目前主要是想测试 本机的 127.0.0.1 在容器中如何访问
|
3
liuxu 2022-08-04 17:47:08 +08:00
@yingqiuQAQ 那需要在 eth0 和 docker0 上添加 iptables 规则,然后 host 的路由表也要改改,连通下 eth0 和 docker0
vagrant@homestead:~/work/tms-api$ ip route default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown vagrant@homestead:~/work/tms-api$ sudo iptables -t nat -L Chain POSTROUTING (policy ACCEPT) target prot opt source destination MASQUERADE all -- 172.17.0.0/16 anywhere |
4
saltbo 2022-08-04 21:20:57 +08:00
通过 docker0 的 ip 就能直接访问啊
|
5
zwlinc 2022-08-04 22:14:33 +08:00
宿主机的服务只绑定 127.0.0.1 吗,这种情况下,容器用哪个 IP 访问宿主机呢?
|
6
hefish 2022-08-04 22:24:14 +08:00
本机的 127.0.0.1 要想访问,我觉着可以 docker 的各个容器里配好 ospf 协议,组成一个复杂的网络。
不然我也想不出办法去访问别人的 loopback 地址, |
7
mikeguan 2022-08-04 22:28:31 +08:00 via Android
不知道 lo 绑个 IP 有没有用,明天试下
|
8
pmispig 2022-08-04 23:15:48 +08:00
如果换个思路就简单很多,再创建一个桥,把这个本来应该在 127.0.0.1 的服务 bind 到这个桥 IP 试试。
或者干脆直接 bind 到 docker0 这个桥 IP |
9
naturegreen 2022-08-05 02:54:12 +08:00 via Android
host.docker.internal 不行吗?
|