重启服务器后Docker容器暴露的端口外网突然访问不了!!

 

问题描述:

服务器内存不够了 需要加8G内存,加内存需要重启服务器,但是重启后Docker容器启动成功,端口也映射了,就是外网访问不了。

看了下容器是正常运行的端口也是映射成功的: image

给阿里云提工单

给阿里云提工单了,人家也不知道什么原因,建议我自己抓包排查!!哎。。。 image

还是自己研究吧

google搜索了一下 关键字:docker 重启 端口映射失效

挑选了如下2篇文章看了下:

https://www.cnblogs.com/zl1991/p/10531726.html

摘要: image

https://py3.io/Docker/

摘要:

image

总结一下 上面2篇文章,关键字就是 iptables 服务 和 Docker的端口映射存在关联

  1. 第一步我检查下服务器的iptables服务 image

可以看出 iptables服务存在问题 居然关不了

  1. 这里我猜测:可能是因为重启服务器导致iptables发生问题,iptables 挂了 会影响Docker的端口映射
  2. 如何救活iptables服务

参考:https://stackoverflow.com/questions/24756240/how-can-i-use-iptables-on-centos-7

image

  1. OK照着做救活了iptables服务 image

  2. 开启iptables服务试了下 没有问题 image

  3. 在iptables开启的状态下 尝试下访问 依然失败

  4. 重新把iptables关闭,尝试下访问 成功!!!!

总结:

如果之前Docker容器暴露的端口可以访问,当你重启服务器后,访问不了了。

检查下是否iptables服务正常,

如果出现类似: Failed to restart iptables.service: Unit not found. 的错误,那么就把iptables服务重装后再试试。我就是这么尝试成功了!!!

posted @ 2019-06-06 12:14  俞正东  阅读(11283)  评论(5编辑  收藏  举报