将特定容器绑定到特定物理接口

问题描述 投票:0回答:0

我在 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

你介意告诉我我缺少什么吗?

docker routes iptables
© www.soinside.com 2019 - 2024. All rights reserved.