首页 > 解决方案 > 无法从 docker 外部访问在 docker 中运行的 Flask 服务

问题描述

我在 docker 内创建了一个烧瓶服务

import json
from flask import Flask, request


app = Flask(__name__)


@app.route("/", methods=["GET", "POST"])
def home():
    return "App is working"

if __name__ == "__main__":
    app.run("0.0.0.0", debug=False)

但我无法从码头外部访问上述服务。

Dockerfile的是

FROM python:3.7

MAINTAINER sociopath(xyz@gmail.com)

COPY requirements.txt domain.yml config.yml /tmp/
COPY data /tmp/data
COPY helper /tmp/helper
COPY models /tmp/models
COPY app.py /tmp/app.py

WORKDIR /tmp

RUN pip install -r requirements.txt

EXPOSE 5000

CMD flask run --host 0.0.0.0

我使用命令构建它

docker build . -t cont1

并使用

docker run -d -p 5000:5000 --name c1 cont1

当我从 docker 内部发送请求时,我得到App is working但当我尝试从我的机​​器访问时没有响应。

编辑

我有 Windows 操作系统,我在其中使用安装了 docker 的 Ubuntu VM。我在 Ubuntu 上得到响应,但是当我尝试从 Windows 访问它时,我收到了一个错误。

标签: pythonpython-3.xdocker

解决方案


将您的 docker 文件公开给外部源(侦听器)(参考

EXPOSE 5000

前任:-

FROM python:3.7

MAINTAINER sociopath(xyz@gmail.com)

COPY requirements.txt domain.yml config.yml /tmp/
COPY data /tmp/data
COPY helper /tmp/helper
COPY models /tmp/models
COPY app.py /tmp/app.py

WORKDIR /tmp

RUN pip install -r requirements.txt
EXPOSE 5000
CMD flask run --host=0.0.0.0

推荐阅读