Docker 未找到 SocketIO (Python)

Docker SocketIO not found (Python)

当 运行 正常连接我的 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 注意: 到 docker 容器的连接是通过 Client API.

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

问题似乎是您没有为 运行 命令的 -p/--publish 参数使用正确的形式。在最简单的形式中,您可以使用 {host-port}:{container-port},例如8080:8080。您可以选择使用 0.0.0.0:8080:8080 明确表示该端口应位于所有接口上,或者使用 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 是关于可能的配置的一本不错的入门书。