当前位置:   article > 正文

Docker端口映射无法访问的问题排查_dokcer 端口 映射 重启 失效

dokcer 端口 映射 重启 失效

概述

前些天,老大让升级Docker版本,后面折腾了一番,成功升级到最新版本Docker,Docker容器啥的都跑起来了,以为一切顺利了,结果第二天就发现容器映射到宿主机的端口无法访问。在宿主机用 curl 127.0.0.1:端口 测试,得到以下反馈

curl: (56) Recv failure: 连接被对方重设
  • 1

尝试的排查

  1. 配置检查
sysctl net.ipv4.ip_forward
  • 1

0 - 未开启转发,1 - 已开启转发。经排查没问题

  1. 局部重启大法

第一次:

docker restart 容器ID
  • 1

经过测试,没有解决问题。PS:容器是通过docker-compose启动的

第二次:

service docker restart
service network restart
  • 1
  • 2

经测试,没有解决问题。

第三次:
利用docker-compose重启所有服务容器,然后启动的时候发现报了以下错误

ERROR: for ch Cannot start service XX: driver failed programming external connectivity on endpoint XXXX (f18e09def033319d2dc8fb57ac3d2447a09ab5a4b50d6dd3bf9f607ad7e57924): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 9009 -j DNAT --to-destination 172.19.0.2:9009 ! -i br-73bbc1354949: iptables: No chain/target/match by that name.
(exit status 1))

好家伙,错误根源出来了,然后执行以下命令解决

service firewalld restart
service docker restart
  • 1
  • 2

然后重新启动对应容器即可

总结

我遇到该问题应该是安装新版本的docker时候,将旧版本的卸载了,然后服务器又有Docker容器迁移等,具体根源无法确定,只能知道咋样解决的。
PS:Docker升级之后,最好将firewalld 、docker、服务容器全部都重启一边。

参考链接

docker 启动 nginx 报错 docker0: iptables: No chain/target/match by that name
docker发布的服务无法访问-端口不通问题解决
docker端口映射无法访问的解决

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/258181
推荐阅读
相关标签
  

闽ICP备14008679号