【发布时间】:2019-04-02 12:03:25
【问题描述】:
我有一个烧瓶应用程序,我正在尝试使用 gunicorn 在 docker 容器内运行它。
这是我的 dockerfile
FROM python:3.6
WORKDIR /app
COPY ./requirements.txt /.requirements.txt
COPY . /app
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
EXPOSE 8000
ENV FLASK_APP=<some_name>
ENV FLASK_ENV=development
CMD gunicorn -b :8000 -w 4 app:app
这就是我运行容器的方式 -
docker run <name>
这就是我测试它的方式-
curl -X POST http://172.17.0.2:8000/login -H 'cache-control: no-cache' -H 'content-type: application/json' -d '<SOME_PAYLOAD>'
curl: (7) Failed to connect to 172.17.0.2 port 8000: Operation timed out
据我所知,我是
- 暴露端口
- 点击正确的 IP
- 在我的主机上点击正确的端口
- 将我的主机上的端口映射到我的 docker 容器。
为什么这个操作会超时?
我也试过了
-
CMD gunicorn -b 0.0.0.0:8000 -w 4 app:app应该映射所有内容 -
docker run -p 8000:8000 iterative,它应该强制在主机和容器上的端口之间进行映射。
但无济于事。
在我的电脑上,该应用程序运行良好。
为什么它在 docker 容器中不起作用?
【问题讨论】:
标签: python docker flask gunicorn