python - WSL2 Docker Flask 容器未连接
问题描述
我正在尝试在 Docker 的帮助下在 Ubuntu-WSL2 中创建一个简单的 Web 应用程序容器。因此,我构建了创建 my-simple-webapp 文件夹的容器,并在该文件夹中创建了 Dockerfile 和 app.py 文件;
Dockerfile
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y python python-pip
RUN pip install flask
COPY app.py /opt/
ENTRYPOINT FLASK_APP=/opt/app.py flask run --host=0.0.0.0 --port=8080
应用程序.py
import os
from flask import Flask
app = Flask(__name__)
@app.route("/")
def main():
return "Welcome!"
@app.route('/how are you')
def hello():
return 'I am good, how about you?'
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
当我运行该命令docker build ./my-simple-webapp
时,它可以正常工作。但是,当我使用浏览器连接我的容器时172.17.0.2:8080
,输入o.o.o.o:8080
或localhost:8080
连接超时。
解决方案
如果您只运行它,docker build...
那么您仍然需要使用docker run...
.
您可以打开 docker 仪表板(在您的 Windows 托盘中)以查看您的容器是否实际运行。
推荐阅读
- knex.js - 如何通过回滚迁移来测试最新的 Knex 迁移?
- python - 将鼠标坐标从 pyautogui 传递给直接输入会导致鼠标移动
- c# - 如何获取 DataGridTemplateColumn 的底层(文本框)控件
- regex - 将给定的字符串评估为数组或不使用正则表达式
- c# - 当创建另一个类的对象时,foreach 循环崩溃
- javascript - 用于反应导航的主屏幕(App.js)结构
- c# - 在哪里可以找到 NuGet.Clients 文档?
- node.js - Graphql自定义标量,没有为空值调用parseLiteral?
- http - 不同客户端的 iTunes Lookup API 响应不同
- python - 缺少值时将列值添加到另一列中的数组中