请问 能否可以设置一条规则, 实现容器内部(docker0 网桥下的容器)访问主机上监听 127.0.0.1 的防火墙规则。
我的理解是 容器内部的流量从 docker0 网卡出来 会走到 eth0 网卡 然后 dnat 以下就行
实际上不能这样配置,这种路由可行吗
请问 能否可以设置一条规则, 实现容器内部(docker0 网桥下的容器)访问主机上监听 127.0.0.1 的防火墙规则。
我的理解是 容器内部的流量从 docker0 网卡出来 会走到 eth0 网卡 然后 dnat 以下就行
实际上不能这样配置,这种路由可行吗
1
liuxu Aug 4, 2022
docker network 直接使用 host driver
|
2
yingqiuQAQ OP @liuxu 嗯嗯这是一种办法 目前主要是想测试 本机的 127.0.0.1 在容器中如何访问
|
3
liuxu Aug 4, 2022
@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 Aug 4, 2022
通过 docker0 的 ip 就能直接访问啊
|
5
zwlinc Aug 4, 2022
宿主机的服务只绑定 127.0.0.1 吗,这种情况下,容器用哪个 IP 访问宿主机呢?
|
6
hefish Aug 4, 2022
本机的 127.0.0.1 要想访问,我觉着可以 docker 的各个容器里配好 ospf 协议,组成一个复杂的网络。
不然我也想不出办法去访问别人的 loopback 地址, |
7
mikeguan Aug 4, 2022 via Android
不知道 lo 绑个 IP 有没有用,明天试下
|
8
pmispig Aug 4, 2022
如果换个思路就简单很多,再创建一个桥,把这个本来应该在 127.0.0.1 的服务 bind 到这个桥 IP 试试。
或者干脆直接 bind 到 docker0 这个桥 IP |
9
cense Aug 5, 2022 via Android
host.docker.internal 不行吗?
|