记一次阿里云ECS中Docker容器内无法连接RDS内网地址的故障解决

在阿里云ECS主机中创建了某个Docker容器,容器中的代码连接RDS内网的地址无法连通。故障较诡异,通过Telnet发现宿主机上连接其他网络均正常,唯独内网RDS无法连接。初步怀疑RDS白名单是否有问题,联系RDS客服同学进行排查反馈RDS的网络均正常,白名单设置也正确,他们怀疑故障依旧来自ECS。

进一步排查ECS,确认所有防火墙均关闭,故障依旧。继续查看RDS的内网地址解析成IP后对应的是172.22.0.0段,再通过route -n 命令查看路由表信息,对照docker network ls查看Docker建立的网络,发现有一个容器也是172.22.0.0段,问题至此已经有了眉目。就是因为docker自动创建的网络与RDS网络段一样,导致系统内网寻址路由冲突。

解决方法:删除Docker容器和自动分配的冲突网络段(docker network rm {networkname}),在建立容器的时候指定docker已创建的网络,或重新创建网络避开冲突。

posted @ 2021-04-28 13:18  Don  阅读(68)  评论(0编辑  收藏  举报