Docker主机静态IP更改后,Docker容器端口无法访问

时间:2016-01-01 01:11:18

标签: docker ip

主机使用CentOS静态IP, 容器使用Debian系统桥接网络并以80,9101端口映射到主机。

使用eth0更改主机静态IP后,即使重新创建,也无法远程访问容器端口。来自主持人的电话是好的。 我必须重启主机。

同时,--net主机模式容器不会受到影响。

1 个答案:

答案 0 :(得分:0)

首先,如果您使用--net=host端口映射与docker -p不再起作用。因为您将主机网络暴露给容器。

由于--net=host因为容器的应用程序在启动时实际上已绑定到主机IP地址,因此无法再访问容器端口,因此当IP更改时,它将无法运行,直到您重新启动应用。然后它又开始工作了。

如果您想要临时解决此问题,请不要使用--net=host或只是创建一个自己的iptables规则来将流量重定向到您的应用。

如果您的应用正在侦听端口8080并且您希望将其公开为80,那么我认为这应该可行:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

鉴于您的应用也正在收听localhost