1

正常运行我的Python-SocketIO应用程序时,与前端的 SocketIO 连接工作正常。在 docker 容器中,它无法连接。

Docker 容器的输出:

======== Running on http://0.0.0.0:8080 ========

(Press CTRL+C to quit)

标准的 SocketIO 也出现了类似的问题,但 Python-SocketIO 没有提到config.json文件,因此我没有在任何容量中包含一个文件。我也不认为这很重要,因为程序的输出已经描述了0.0.0.0:8080而不是127.0.0.1:8080

我的运行配置:-> 都试过了

docker run --rm -d <CONTAINER_ID>
docker run --rm -d --network host <CONTAINER_ID>
docker run --rm -d --network host <CONTAINER_ID> -p 0.0.0.0:8080/tcp

20 年 8 月 19 日注意:与 docker 容器的连接是通过Client API进行的。

4

1 回答 1

2

我假设<CONTAINER_ID>在您的运行命令中是自定义图像标签?容器和图像是不同的东西。

问题似乎是您没有为run 命令的-p/参数使用正确的形式。--publish在最简单的形式中,您可以使用{host-port}:{container-port},例如8080:8080。您可以选择明确表明该端口应位于所有接口上0.0.0.0:8080:8080,或限制为主机环回127.0.0.1:8080:8080。添加/tcp到末尾以限制仅 TCP 数据包。您可以使用(注意额外的冒号!)使容器端口 8080 暴露在随机动态端口上0.0.0.0::8080,或者使用-P/--publish-all对容器上的所有暴露端口执行此操作。

听起来您想使用这样的东西来模拟在容器外运行应用程序:

docker run --rm -d -p 0.0.0.0:8080:8080 <IMAGE_TAG>

容器的网络可能会涉及很多,链接上的文档是可能配置的不错入门。

于 2020-08-19T21:46:12.890 回答