问题连接到Docker容器

我正在尝试将Docker主机上的脚本连接到Docker容器上的脚本。

这些脚本正在使用Python的远程队列pipe理器,并且在Docker之外完美工作,所以我很确定这个问题是由于我的Dockerconfiguration或者我对Docker端口转发的理解。

容器上的脚本正确绑定到(localhost,5800),并validation脚本不会崩溃。

我试过让脚本连接到端口5800上的容器的IP地址,这是行不通的(连接被拒绝)。 我也尝试使用-p标志并将5800转发到一个随机端口,然后从Docker主机连接到(localhost,randomport),这也不起作用(连接被拒绝)。

再一次,脚本肯定正在运行,因为即使我在容器上获得一个shell并手动启动脚本,确保它成功启动服务器并不closures,问题就会发生。

对我来说,这似乎与在Docker容器中运行Web服务器完全相同的问题。 为什么这不起作用? 这些脚本在Docker之外工作得很好。

https://github.com/hashme/thistle/tree/flask_thistle 

(请参阅容器脚本的room.py和主机脚本的app.py;我没有完全运行这些脚本,而是在REPL中进行了攻击,所以我调整了许多参数而没有成功)

要复制问题,首先运行./container.sh,然后(在REPL中)导入应用程序,并创build一个带有一些IP地址和端口号的MessagePasser。 运行app.py脚本不会执行任何操作。

容器上的脚本正确绑定到(localhost,5800)

您需要确保在容器内的脚本绑定到“0.0.0.0”(所有接口)地址,而不是本地主机(环回)。 否则,将无法接受任何外部连接。