在一台服务器上起了PostgresSQL的容器,然后在这个宿主机上telnet 5432通,但是其他机器上不通。同一台宿主机上的其他容器映射的端口在其他机器上也是telnet通的。
解决方案:重启docker
sudo systemctl restart docker
原因可能是:Docker 的 NAT 转发规则(iptables)或者 docker-proxy 进程状态出错。
宿主机上能通,而远程不通,说明:
-
容器、Postgres、端口映射本身都没问题;
-
Docker 的 iptables NAT 链接失效或 docker-proxy 不正常;
-
loopback 不受影响,所以宿主机本地访问仍然通;
-
外部访问需要 NAT 转发,因此会失败;
-
重启 Docker 后 NAT 规则重建,于是恢复。

2081

被折叠的 条评论
为什么被折叠?



