gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 12:29:49 27 4
gpt4 key购买 nike

我们在 ECS 上部署了几个 docker 容器。容器内的应用程序使用远程服务,因此需要使用它们的10.X.X.X访问它们私有(private) 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 的符号链接(symbolic link)。我对busybox/networking的了解不够,无法说明根本原因是什么,但我能够通过使用其他工具证明网络路径是清晰的。

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

nc -vz -w2 HOST PORT

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

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

关于Docker:能够从主机但不能从容器远程登录到远程机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45036888/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com