在本地主机上运行 docker 容器

时间:2021-03-12 07:18:44

标签: docker flask kubernetes deployment

下面是我的 DockerFile:

FROM python:3.8.5
COPY . /usr/app/
EXPOSE 5500
WORKDIR /usr/app/
RUN pip install -r requirements.txt
CMD python app.py

我正在使用命令“docker run -p 5500:5500 api_name”运行此容器,之后我在 cmd 中收到以下消息: C:\Users\win10\Documents\ML files>docker run -p 5500:5500 api_name

  • 服务 Flask 应用“app”(延迟加载)
  • 环境:生产 警告:这是一个开发服务器。不要在生产部署中使用它。 改用生产 WSGI 服务器。
  • 调试模式:开启
  • http://127.0.0.1:5000/ 上运行(按 CTRL+C 退出)
  • 使用 stat 重新启动
  • 调试器处于活动状态!
  • 调试器 PIN:xxx-xxx-xxx

我尝试访问 http://127.0.0.1:5000/http://127.0.0.1:5500/,但“无法访问此站点”。 PS:我在 Windows 上使用 docker 桌面

1 个答案:

答案 0 :(得分:0)

如果不检查您的 app.py 文件,就很难确定。 但是,很可能您的应用没有侦听正确的端口或正确的绑定主机。默认情况下,flask 应用程序监听 127.0.0.1,当在 docker 容器内运行时,您需要使用 0.0.0.0

监听 app.run(host='0.0.0.0')

这是一个工作示例

Dockerfile

FROM python:3.8.5
COPY . /usr/app/
EXPOSE 5000
WORKDIR /usr/app/
RUN pip install flask
CMD python app.py

app.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

构建并运行

$ docker build -t temp
$ docker run -p 5000:5000 temp