【问题标题】:Flask + Gunicorn in Ubuntu Container, no connectionUbuntu Container中的Flask + Gunicorn,没有连接
【发布时间】:2020-04-08 17:07:38
【问题描述】:

我有一个烧瓶+gunicorn 服务器,在 ubuntu docker 映像上运行 (ubuntu:18.04)

在 docker-compose 我有这个:

  python_server:
    build: ./python_server/
    image: flask-server:${PYTHON_SERVER_VERSION}
    command:
      [
        "gunicorn",
        "-b",
        "0.0.0.0:8080",
        "wsgi:app",
        "--workers",
        "9",
        "--worker-class",
        "gevent",
        "--worker-connections",
        "1000",
      ]
    expose:
      - "8080"


------ OTHER CONTAINERS THAT USE THIS ONE HERE -------------

当我尝试打开Dockerfile (RUN ufw allow 8080) 中的端口时,我得到:

找不到ufw

其他容器连接不上,在Node获取:

error: Error: write ECONNRESET
     at WriteWrap.afterWrite [as oncomplete] (net.js:789:14)

forgotten to catch a Promise rejection:
      write ECONNRESET

我在日志中看不到任何连接

这是防火墙问题吗?

【问题讨论】:

    标签: docker flask docker-compose gunicorn ubuntu-18.04


    【解决方案1】:
    1. ufw 命令是不必要的,只需将其删除即可。
    2. 您缺少端口转发。根据文档,“公开”将“公开端口而不将它们发布到主机。”

    你想要的是:

    ports:
      - "8080:8080"
    

    而不是 expose 部分。

    要了解为什么需要端口转发,请参阅https://pythonspeed.com/articles/docker-connection-refused/

    【讨论】:

    • 这是我正在寻找的行为,我只需要让我的其他容器看到这个容器,这就是 expose 的用途。但他们无法访问它,我认为这意味着 ubuntu 容器阻塞了端口
    猜你喜欢
    • 2019-10-23
    • 2020-04-06
    • 2019-12-01
    • 2021-11-25
    • 2019-10-26
    • 1970-01-01
    • 2021-11-09
    • 1970-01-01
    • 2013-12-23
    相关资源
    最近更新 更多