正常运行Python-SocketIO应用程序时,与前端的SocketIO连接工作正常。在Docker容器中,无法连接。
Docker容器的输出:
======== Running on http://0.0.0.0:8080 ========
(Press CTRL+C to quit)
A similar problem是为标准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
8/19/20注:通过Client API连接到docker容器。 最佳答案
我假设您的运行命令中的<CONTAINER_ID>
是自定义图片标签?容器和图像是不同的东西。
问题似乎是您没有为run命令的-p
/ --publish
参数使用正确的格式。以最简单的形式,您可以使用{host-port}:{container-port}
,例如8080:8080
。您可以选择明确地指出,该端口应位于所有带有0.0.0.0:8080:8080
的接口(interface)上,或者使用127.0.0.1:8080:8080
限制主机回送。最后添加/tcp
以仅限制TCP数据包。您可以使用0.0.0.0::8080
(请注意额外的冒号)将容器端口8080暴露在随机动态端口上,或者改为使用-P
/ --publish-all
对容器上的所有暴露端口进行暴露。
听起来您想使用类似这样的方法来模仿在容器外部运行应用程序:docker run --rm -d -p 0.0.0.0:8080:8080 <IMAGE_TAG>
容器的联网可以涉及很多,docs on links是有关可能配置的不错的入门。
关于docker - 找不到Docker SocketIO(Python),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63442730/