提问者:小点点

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


我有一个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个答案

匿名用户

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

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

docker run -d -p 80:5000 your_image

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