Python 3.x 使用Python3的Web应用程序在停靠时不工作 HelloWorld-1.py

Python 3.x 使用Python3的Web应用程序在停靠时不工作 HelloWorld-1.py,python-3.x,docker,flask,Python 3.x,Docker,Flask,使用以下命令构建docker docker build -t helloworld . docker run -d --name helloworld -p 80:80 helloworld docker ps -a 使用以下命令运行docker映像 docker build -t helloworld . docker run -d --name helloworld -p 80:80 helloworld docker ps -a 当我运行下面的命令时 docker build

使用以下命令构建docker

docker build -t helloworld .
docker run -d --name helloworld -p 80:80 helloworld
docker ps -a
使用以下命令运行docker映像

docker build -t helloworld .
docker run -d --name helloworld -p 80:80 helloworld
docker ps -a
当我运行下面的命令时

docker build -t helloworld .
docker run -d --name helloworld -p 80:80 helloworld
docker ps -a
我得到下面的输出

CONTAINER ID  IMAGE      COMMAND               CREATED             STATUS             PORTS               NAMES

cebfe8a22493 helloworld "python /home/HelloW…" 2 minutes ago Up 2 minutes (unhealthy) 0.0.0.0:80->80/tcp helloworld
如果我点击浏览器(127.0.0.1:5000),它不会给出响应,
但是当我单独运行python文件时,它在浏览器中正常运行。

我重现了您的问题,主要有四个问题:

  • 不导入
    烧瓶
  • 使用
    名称
    而不是
    \uuuuuu名称
  • 未分配正确的端口
  • 没有分配主机
  • 这就是您的
    HelloWorld-1.py
    的外观:

    from flask import Flask
    app = Flask(__name__)
    @app.route('/')
    def printHelloWorld():
        print("+++++++++++++++++++++")
        print("+ HELLO WORLD-1 +")
        print("+++++++++++++++++++++")
        return '<h1>Bishwajit</h1>'
        # return '<h1>Hello %s!<h1>' %name
    
    if __name__ == '__main__':
        app.run(host='0.0.0.0')
    
    FROM python:3
    ADD HelloWorld-1.py .
    RUN pip install flask
    CMD [ "python", "/HelloWorld-1.py"]
    
    然后简单地构建并运行:

    docker build . -t helloflask
    docker run -dit -p 5000:5000 helloflask
    
    现在转到
    localhost:5000
    ,它应该可以工作了

    另外:您实际上可以分配任何其他端口,例如4444,然后转到
    localhost:4444

    docker run -dit -p 4444:5000 helloflask
    

    您正试图使用
    127.0.0.1:5000
    进行访问,
    -p
    参数是否应为
    -p 5000:80
    ?我也尝试过更改端口,但它不起作用。我的docker文件正确吗?我也试过了。。在Dockerfile中…如果它被更改,它就在那里。@programandoconro终于起作用了。我更改了一些东西,如“app.run(debug='true',port='5000',host='0.0.0')”、“docker run-p 5000:5000 helloworld``不,它仍然不起作用。在Dockerfile中……如果需要更改,它将公开80。是的。对的如果我想公开一个端口,它需要首先给出该端口,然后在Dockerfile中公开它。