1. 准备flask文件
from flask import Flaskapp = Flask(__name__)@app.route('/')def hello_world(): return 'Hello World!'
2. 准备Dockerfile
FROM python:3.9.5-slimCOPY app.py /zhangtao/app.pyRUN pip3 install flaskWORKDIR /zhangtaoENV FLASK_APP=app.pyCMD ["flask","run"]
3. 构建镜像
[root@localhost zhangtao]# docker image build -f Dockerfile -t flask-demo .Sending build context to Docker daemon 3.698MBStep 1/6 : FROM python:3.9.5-slim3.9.5-slim: Pulling from library/pythonb4d181a07f80: Downloading [========================> ] 13.04MB/27.15MBa1111a8f2ec3: Download complete445d04774519: Download complete24f3f85d41f3: Download completed299f7fb612d: Download complete
4. 运行容器
[root@localhost zhangtao]# docker container run -d flask-demo30324fee8eaaf5e9e4dc3d0f9d9cab33240ad0198e9c9c27e6c235e619202213[root@localhost zhangtao]#[root@localhost zhangtao]# docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES30324fee8eaa flask-demo "flask run" 7 seconds ago Up 6 seconds determined_galoisf82028e4f127 nginx "/docker-entrypoint.…" 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp, :::80->80/tcp condescending_brattain
5. 进行端口转发
FROM python:3.9.5-slimCOPY app.py /zhangtao/app.pyRUN pip3 install flaskWORKDIR /zhangtaoENV FLASK_APP=app.pyEXPOSE 5000CMD ["flask", "run", "-h", "0.0.0.0"]
- 重新构建镜像
docker build -t flask-demo . - 重新运行容器
[root@localhost zhangtao]# docker container run -d -p 5000:5000 flask-demo3533523e34335212bad30537494dba3bb4caa2563222f49081d73988a5d19660[root@localhost zhangtao]#[root@localhost zhangtao]# docker container lsCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES3533523e3433 flask-demo "flask run -h 0.0.0.0" 6 seconds ago Up 5 seconds 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp quizzical_herschelf82028e4f127 nginx "/docker-entrypoint.…" 2 weeks ago Up 2 weeks 0.0.0.0:80->80/tcp, :::80->80/tcp condescending_brattain
6. 访问5000端口
