无法从 macOS M1 本地主机访问容器中的 Flask 应用 运行

Cannot access Flask app running in container from macOS M1 local host machine

我正尝试在我的 Apple Silicon macOS 的容器中 运行 一个简单的 Flask 应用程序。但是,我无法从位于 localhost:5000 的 mac 主机访问启动的 Flask 应用程序(应用程序在容器内启动时没有问题)。

有人可以帮忙解决这个问题吗?我在网上尝试了其他解决方案,但 none 有效。这可能是 Mac 和 Docker 的问题吗?

docker-compose.yml 文件是:

version: '3'

services:
  basic_app:
    build:
        context: .
        dockerfile: Dockerfile
    #network_mode: host -> not needed
    ports:
      - "5000:5000"
    command: bash -c "flask run --host=0.0.0.0 --port=5000"

network_mode: host doesn't work on MacOS,一般情况下几乎不需要。删除该行。

尝试在 Docker 桌面设置上启用主机网络将阻止此应用程序运行,即使您已选中其他框(服务器进程侦听 0.0.0.0,已发布 ports:) .您应该会收到一条警告,指出 ports: 和主机网络不兼容,因为主机网络是禁用 Docker 网络层的指令。

(从技术上讲,该进程是 运行 在隐藏的 Linux VM 的主机网络上,但如果没有 ports: 布线功能,您无法从 MacOS 主机访问它.)