当前位置: 首页 > 知识库问答 >
问题:

flask服务器连接困难。py文件在docker容器中运行

梁宏才
2023-03-14

我有一个tensorflow与flask应用程序一起运行在docker容器中。我在flask_client.py文件中给出了从容器外部访问的权限。

if __name__ == "__main__":
    app.run(host= '0.0.0.0')

当我运行这个flask_client.py文件时,

python flask_client.py --server=172.17.0.2:9000
Initialization done.
* Running on http://0.0.0.0:5000/ (press CTRL+C to quit)

我的容器IP地址:172.17.0.2,它在端口9000上运行。

我的虚拟机IP地址:192.168.99.100

而flask运行在http://0.0.0.0:5000/

但是我可以从命令提示符ping 192.168.99.100和172.17.0.2

C:\Windows\system32>ping 192.168.99.100

Pinging 192.168.99.100 with 32 bytes of data:
Reply from 192.168.99.100: bytes=32 time=5ms TTL=64
Reply from 192.168.99.100: bytes=32 time=4ms TTL=64
Reply from 192.168.99.100: bytes=32 time=4ms TTL=64
Reply from 192.168.99.100: bytes=32 time=4ms TTL=64

Ping statistics for 192.168.99.100:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 4ms, Maximum = 5ms, Average = 4ms

C:\Windows\system32>ping 172.17.0.2

Pinging 172.17.0.2 with 32 bytes of data:
Reply from 172.17.0.2: bytes=32 time=4ms TTL=63
Reply from 172.17.0.2: bytes=32 time=4ms TTL=63
Reply from 172.17.0.2: bytes=32 time=4ms TTL=63
Reply from 172.17.0.2: bytes=32 time=4ms TTL=63

Ping statistics for 172.17.0.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 4ms, Maximum = 4ms, Average = 4ms

当我在码头集装箱里挣扎时,它显示了这样的东西。

这些是我的泊坞站容器内的端口和地址:

我现在该怎么办?

PS:我的docker PS正在显示任何端口

共有1个答案

别帅
2023-03-14

您需要将Flask应用程序的内部端口5000映射到主机的公共端口。例如,我将192.168.99.100:80映射到您的容器-ip端口5000。

因此,如果您在本地浏览器中访问 http://192.168.99.100 则会看到容器的内容:5000

docker run -d -p 80:5000 your_image

有关Docker运行的更多信息,请参阅文档。

 类似资料:
  • 我正在docker容器中运行sql server` 所有这些都成功完成了。现在,当我尝试使用Java连接到数据库时,我得到了错误。 192.168.56.101是我的虚拟机的ip。我正在虚拟机上运行Linux。 我收到通信链路故障错误。 我在谷歌上搜索并找到了一些关于以下链接的解决方案,但没有一个对我有用。 使用JDBC和MySQL解决“通信链路故障” 如何连接docker中作为容器运行的MySQ

  • 我有一个php docker容器,我的Symfony项目在哪里。 这是我的docker-compose.yml 我想使用以下命令启动我的symfony项目: 但当我想访问url时,它不起作用。我收到以下错误消息: localhost页不行 localhost未发送任何数据。 我该怎么解决这个问题? PS:我用docker for mac 和输出: [2016-08-06 14:09:53]php.

  • 问题内容: 我有去grpc服务。我正在开发Mac,塞拉利昂。在本地针对服务运行grpc客户端时,一切都很好,但是在Docker容器中针对相同服务运行相同的客户端时,出现此错误: 这是我的docker文件: 我的命令来建立图像: 我的命令启动Docker容器: 其他资讯: 客户端程序可以在Docker容器中正常运行 连接到常规的休息端点可以正常工作(http2,与grpc相关吗?) 在OS X中运行

  • 我有go grpc服务。我在mac电脑上开发,塞拉。当针对本地服务运行grpc客户机时,一切都很好,但当针对docker容器中的相同服务运行相同客户机时,我会出现以下错误: 下面是我的服务器代码片段:

  • 问题内容: 我正在设置一个简单的图像:包含Riak(一个NoSQL数据库)的图像。该映像以CMD形式启动Riak服务。现在,如果我使用将该程序作为守护程序运行,它将启动Riak进程(我可以在日志中看到它)。但是,它会在几秒钟后自动关闭。如果我使用riak进程未启动运行它(更新:对此的解释,请参见答案)。实际上,根本没有任何服务在运行。我可以使用终端手动启动它,但是我希望Riak自动启动。我认为其他

  • 我的docker版本是1.13.1。我正试图从我的docker容器连接到redis-server,但我遇到了拒绝连接的错误。详细的日志如下: 原因:redis.clients.jedis.exceptions.jedisconnectionException:java.net.Connection:redis.clients.jedis.Connection(Connection.java:207