在EC2上设置4个容器,4个IP和2个接口

时间:2015-12-03 05:26:10

标签: docker

我正在尝试在具有4个IP和2个接口的系统中设置4个容器(带有nginx)。有人可以帮帮我吗?目前只有3个容器可以访问。第4个是在尝试从浏览器访问而不是显示欢迎页面时超时。我已经给出了所需的ip路由

主机是Ubuntu。

所以当发生这种情况时,我认为它与ip路由有关。因此,在同一系统中,我安装了apache并创建了4个虚拟主机,每个主机都监听不同的IP和不同的文档路由。

选中后,所有IP均可访问并显示正确的文档。

所以现在我被卡住了,我现在该怎么做!

配置:

4个IP和2个接口。所以我创建了2个IP别名。所有IP都由/ etc / network / interfaces配置,第一个除外。 eth0设置为dhcp模式。

auto eth0:1
iface eth0:1 inet static
address 172.31.118.182
netmask 255.255.255.0


auto eth1
iface eth1 inet static
address 172.31.119.23
netmask 255.255.255.0

auto eth1:1
iface eth1:1 inet static
address 172.31.119.11
netmask 255.255.255.0

就是这样。 IP是私有IP,所以我想在这里分享它没有问题。

eth0   - 172.31.118.249
eth0:1 - 172.31.118.182
eth1   - 172.31.119.23
eth1:1 - 172.31.119.11

现在是docker创建命令 所有这些只是基本的nginx容器,因此在工作时它将显示默认的nginx页面。

sudo docker create -i -t -p 172.31.118.249:80:80 --name web1 web_fresh
sudo docker create -i -t -p 172.31.118.182:80:80 --name web2 web_fresh
sudo docker create -i -t -p 172.31.119.23:80:80 --name web3 web_fresh
sudo docker create -i -t -p 172.31.119.11:80:80 --name web4 web_fresh
sudo docker start web1
sudo docker start web2
sudo docker start web3
sudo docker start web4

-

现在这里是web1& web2立即可访问。但是在eth1和eth1:1上运行的容器不是。所以我认为iproutes必须是问题,然后继续添加一些路线。

ip route add 172.31.119.0/24 dev eth1 src 172.31.119.23 table eth1
ip route add default via 172.31.119.1 table eth1
ip route add 172.31.119.0/24 dev eth1 src 172.31.119.11 table eth11
ip route add default via 172.31.119.1 table eth11
ip rule add from 172.31.119.23 lookup eth1 prio 1002
ip rule add from 172.31.119.11 lookup eth11 prio 1003

这使得web3也可以访问。但不是来自eth1:1的那个。所以这就是我现在陷入困境的地方。

0 个答案:

没有答案