【问题标题】:I can't access docker from outside the container [duplicate]我无法从容器外部访问 docker [重复]
【发布时间】:2018-07-13 11:38:14
【问题描述】:

我必须“dockerize”我正在编写的服务(一个小型​​ 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>

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

有人知道这里发生了什么吗?

【问题讨论】:

  • 你用什么命令来运行容器?

标签: python docker networking flask


【解决方案1】:

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

【讨论】:

  • 对不起,我忘了说我确实在做端口映射。更新了问题。
猜你喜欢
  • 2022-09-24
  • 2019-09-03
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
相关资源
最近更新 更多