重启服务器后Docker容器暴露的端口外网突然访问不了!!
Posted yudongdong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重启服务器后Docker容器暴露的端口外网突然访问不了!!相关的知识,希望对你有一定的参考价值。
问题描述:
服务器内存不够了 需要加8G内存,加内存需要重启服务器,但是重启后Docker容器启动成功,端口也映射了,就是外网访问不了。
看了下容器是正常运行的端口也是映射成功的:
给阿里云提工单
给阿里云提工单了,人家也不知道什么原因,建议我自己抓包排查!!哎。。。
还是自己研究吧
google搜索了一下 关键字:docker 重启 端口映射失效
挑选了如下2篇文章看了下:
https://www.cnblogs.com/zl1991/p/10531726.html
摘要:
摘要:
总结一下 上面2篇文章,关键字就是 iptables 服务 和 Docker的端口映射存在关联
- 第一步我检查下服务器的iptables服务
可以看出 iptables服务存在问题 居然关不了
- 这里我猜测:可能是因为重启服务器导致iptables发生问题,iptables 挂了 会影响Docker的端口映射
- 如何救活iptables服务
参考:https://stackoverflow.com/questions/24756240/how-can-i-use-iptables-on-centos-7
-
OK照着做救活了iptables服务
-
开启iptables服务试了下 没有问题
-
在iptables开启的状态下 尝试下访问 依然失败
-
重新把iptables关闭,尝试下访问 成功!!!!
总结:
如果之前Docker容器暴露的端口可以访问,当你重启服务器后,访问不了了。
检查下是否iptables服务正常,
如果出现类似: Failed to restart iptables.service: Unit not found. 的错误,那么就把iptables服务重装后再试试。我就是这么尝试成功了!!!
以上是关于重启服务器后Docker容器暴露的端口外网突然访问不了!!的主要内容,如果未能解决你的问题,请参考以下文章
无法通过容器的 ip 和通过 http 暴露的端口访问 Docker 容器中的 Web 应用程序