使用Docker启动并运行Flask应用

(一) 拉取 Python 镜像

docker pull python

# 查看当前主机中存在的镜像
docker images

(二) 编写 flask 应用

1. 创建一个目录

mkdir flask_demo

# 进入目录中
cd flask_demo

2. 创建 flask 应用

使用 vi 编辑 app.py 文件

vi app.py

app.py 文件的内容

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'hello world'

(二) 编写 Dockerfile 生成镜像以及相关操作

1. 编写 Dockerfile 文件

app.py 和 Dockerfile 文件在同一个目录下

使用 vi 编辑 Dockerfile 文件

vi Dockerfile

Dockerfile 文件的内容

# 指定下载 python 版本,说明该镜像以哪个镜像为基础
FROM python:3.8.5

# 构建者的基本信息
MAINTAINER whxcer

# 创建 app 文件夹
RUN mkdir -p /app

# 进入 app 目录
RUN cd /app
# 或 WORKDIR /app

# 在容器内部执行的命令
RUN pip install flask -i https://pypi.douban.com/simple/
# RUN pip install -r requirements.txt -i https://pypi.douban.com/simple/

# 将 linux 系统当前目录下的内容拷贝到容器的 /app 目录下
ADD . /app

# 暴露 5000 端口
EXPOSE 5000

# 将 app 文件夹为工作目录
WORKDIR /app

# 容器启动的时候执行的命令 flask run
CMD ["flask", "run", "--host", "0.0.0.0"]
# 用单引号的话,flask应用启动不起来,必须要用双引号

提示:虽然可以先手动运行原生的镜像,进入容器后再手动去下载程序依赖以及运行应用,但是不建议这样做,这样操作麻烦还耗时。最佳的方案是编写一个 Dockerfile,并在每次发生更改(例如修改源代码)时构建镜像的新版本。

2. 构建镜像

有了 Dockerfile 之后,就可以利用 docker build 命令构建镜像了

docker build -t="flask_demo" .
或
docker build -t flask_demo .

命令说明

  • -t 用来指定新镜像的用户信息、名字、版本等
  • . 命令最后的 点 表示在当前目录寻找 Dockerfile 文件

3. 查看构建之后的镜像

docker images

4. 使用镜像,启动容器

docker run -d -p 5000:5000 flask_demo

5. 查看启动后的容器

docker ps

6. 停止项目

docker stop 容器id

7. 操作示意图

image
image

posted @ 2023-02-18 11:23  夏夜星空晚风  阅读(1184)  评论(0编辑  收藏  举报