无法从容器外部访问docker

4

我需要将我正在编写的一个小型Flask应用程序“docker化”。以下是我的代码:

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>

Flask告诉我它正在监听127.0.0.1:5000。但是我无法从我的主机访问该应用程序。我已经尝试使用localhost0.0.0.0作为地址。但是,如果我进入容器,我就可以使用curl命令来获取我期望的响应。

有没有人知道这是怎么回事?


你使用什么命令来运行容器? - Christian Santos
1个回答

0

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


抱歉,我忘了提到我正在进行端口映射。已更新问题。 - gardenhead

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接