Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker:能够从主机远程登录到远程计算机,但不能从容器远程登录_Docker_Networking_Amazon Ecs - Fatal编程技术网

Docker:能够从主机远程登录到远程计算机,但不能从容器远程登录

Docker:能够从主机远程登录到远程计算机,但不能从容器远程登录,docker,networking,amazon-ecs,Docker,Networking,Amazon Ecs,我们在ECS上部署了几个docker容器。容器内的应用程序使用远程服务,因此需要使用其10.X.X.X专用IP访问它们 我们使用Docker 1.13和CentOS 7以及Docker/alpine作为我们的基础图像。我们还为我们的容器使用netwokMode:host。当我们可以从主机上成功运行telnet 10.X.X.X 9999时,问题就会出现,但如果我们从容器内部运行相同的命令,它就会挂起,无法连接 此外,我们在主机(容器运行的地方)中启用了net.ipv4.ip_forward,但在

我们在ECS上部署了几个docker容器。容器内的应用程序使用远程服务,因此需要使用其
10.X.X.X
专用IP访问它们

我们使用Docker 1.13和CentOS 7以及Docker/alpine作为我们的基础图像。我们还为我们的容器使用
netwokMode:host
。当我们可以从主机上成功运行
telnet 10.X.X.X 9999
时,问题就会出现,但如果我们从容器内部运行相同的命令,它就会挂起,无法连接

此外,我们在主机(容器运行的地方)中启用了
net.ipv4.ip_forward
,但在远程计算机中禁用了


不确定会出现什么问题,可能是
iptables

我花了一天的时间处理相同的问题(尝试了网络模式“网桥”和“主机”),而且在ECS中使用busybox的telnet似乎有问题-Alpine的telnet是busybox的符号链接。我对busybox/networking了解不够,无法说明根本原因是什么,但通过使用其他工具,我能够证明网络路径是明确的

我测试网络路径的“转到”使用netcat,如下所示。“成功”或“失败”消息因版本而异,但拒绝或超时(-w#)是非常明显的。netcat在这里所做的只是请求一个套接字——它实际上并不与侦听应用程序通信,因此您需要其他东西来测试它

nc -vz -w2 HOST PORT
我今天的问题是对应用程序的mongo连接进行故障排除。nc显示路径清晰,但telnet出现了与您报告的相同的问题。最后我安装了mongo客户端并进行了检查,我可以正确连接

如果您需要在ECS容器内通过telnet实际运行命令,可以尝试安装不同的telnet工具,避免busybox内置工具