我们在ECS上部署了几个码头容器。容器内部的应用程序使用远程服务,因此需要使用它们的10.X.X.X内网IP来访问它们。
我们使用Docker 1.13和CentOS 7,并使用docker/ as作为我们的基础镜像。我们的容器也使用了netwokMode: host。当我们可以从主机成功运行telnet 10.X.X.X 9999时,问题就来了,但是如果我们从容器内部运行相同的命令,它就会挂起,无法连接。
此外,我们在主机(运行容器的机器)上启用了net.ipv4.ip_forward,但在远程机器上禁用了它。
不确定可能是什么问题,可能是iptables
发布于 2017-10-19 11:34:40
我花了一天的时间来解决同样的问题(同时尝试了'bridge‘和’host‘两种网络模式),在ECS中使用busybox的telnet看起来像是一个问题--高山的telnet是到busybox的符号链接。我对busybox/网络不太了解,不知道根本原因是什么,但我能够通过使用其他工具来证明网络路径是清晰的。
我测试网络路径的方法是使用netcat,如下所示。“成功”或“失败”消息因版本而异,但拒绝或超时(-w#)非常明显。netcat在这里所做的只是请求套接字-它实际上并不与侦听应用程序通信,所以您需要其他东西来测试它。
nc -vz -w2 HOST PORT我今天的问题是解决一个应用程序的mongo连接问题。nc显示路径清晰,但telnet存在与您报告的相同问题。我最终安装了mongo客户端并进行了检查,然后我就可以正常连接了。
如果需要从ECS容器内部通过telnet实际运行命令,也许可以尝试安装一个不同的telnet工具,并避免使用内置的busybox。
https://stackoverflow.com/questions/45036888
复制相似问题