我无法从容器

时间:2018-02-02 22:18:09

标签: python docker networking flask

我必须“停泊”我正在写的服务(一个小的Flask应用程序)。这就是我写的:

FROM python:3

RUN apt-get update && apt-get install -y build-essential

WORKDIR /app

COPY requirements.txt /app
RUN pip install --no-cache-dir -r requirements.txt

COPY . /app

EXPOSE 5000

ENV FLASK_APP=app.py
ENV FLASK_DEBUG=1

CMD flask run

我可以构建图像并使用

运行容器

docker run -p 5000:5000 <container-name>

并且烧瓶告诉我它正在收听127.0.0.1:5000。但我无法从我的主机访问该应用程序。我还尝试使用localhost0.0.0.0作为地址。但是,如果我exec进入容器,我可以curl地址来接收我期望的响应。

有谁知道这里发生了什么?

1 个答案:

答案 0 :(得分:0)

EXPOSE指令实际上并不发布端口。您还必须告诉docker转发到该端口的连接。运行时,您将执行docker run -p 80:5000 my_docker_image,然后端口80上的流量入站将转发到docker容器内的端口5000。或者,如果您不想在端口80上侦听,则可以在docker映像中将端口5000转发到5000.