【问题标题】:Unable to Connect to Flask App On Docker on windows无法在 Windows 上连接到 Docker 上的 Flask 应用程序
【发布时间】:2020-05-16 17:39:23
【问题描述】:

我有一个烧瓶应用程序(Dash plotly),我想在 Docker 上运行它。 我在Linux上做了以下事情,运行成功:

  • 运行烧瓶应用的代码:app.run_server(debug=True, host='0.0.0.0')
  • 在 Dockerfile 中公开端口:EXPOSE 8050
  • 在 Dockerfile 中运行应用的代码:CMD ["python", "./app.py"]
  • 从我跑的终端:sudo docker build -t app .
  • 从我跑的终端:sudo docker run -p 8050:8050 --mount type=bind,source=/,target=/tmp app

它为我提供了 url:0.0.0.0.8050,它工作正常。

但是,当我在 Windows 10 上下载 Docker Toolbox 并执行完全相同的步骤时,它并没有在提供的 url 上启动应用程序。

谁知道问题出在哪里?

【问题讨论】:

  • 从未在 Windows 上使用过 Docker,但也许,您没有接受防火墙通知,现在它正在阻止传入的 Docker 连接?

标签: python docker flask plotly-dash docker-network


【解决方案1】:

这是因为 docker 不是在 Windows 上本地运行的。它在 Windows 上的虚拟 Linux 机器上运行。因此,您必须使用以下命令检查工具箱的 IP,而不是使用 0.0.0.0

docker-machine ls

然后用那个ip替换0.0.0.0

更新:

如果要使用主机网络,可以通过--network主机使用主机模式。但请注意,端口转发将不起作用。

参考:

https://docs.docker.com/network/network-tutorial-host/

【讨论】:

  • 谢谢它真的解决了这个问题!有没有办法通过工具箱的IP保持主机不变?
猜你喜欢
  • 2014-12-12
  • 2018-06-11
  • 2022-08-14
  • 1970-01-01
  • 2019-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多