我在 Docker 上苦苦挣扎了将近一个星期。
设置:
eth0 - 192.168.1.0 - default
eth1 - 192.168.2.0 - secondary
docker-network - 172.20.0.0
当我在主机上触发
curl https://ifconfig.me/
时,我正在接收eth0
的IP
我想要达到的目标
我想要一个静态IP的容器
172.20.0.100
通过eth1
接口触发curl请求
我试过的
我添加了以下内容:
iptables -t nat -I POSTROUTING -p all -s 172.20.0.100 ! -d 172.20.0.100 -j SNAT --to-source 192.168.2.1
但是跑步时:
docker run --rm --network docker-network --ip 172.20.0.100 byrnedo/alpine-curl -m 10 https://ifconfig.me/ip
导致超时。
令人惊讶的是,当我将
eth1
IP 与这样的 eth0
IP 交换
iptables -t nat -I POSTROUTING -p all -s 172.20.0.100 ! -d 172.20.0.100 -j SNAT --to-source 192.168.1.1
结果符合预期,所以我收到了
eth0
的IP
你介意告诉我我缺少什么吗?