如何把Flask应用程序部署到Docker中

简介: 通过一步一步的解释说明,完整的把一个Flask应用程序部署到Docker中

什么是Docker

Docker 是一种容器化工具,可以更轻松地使用容器创建、部署和运行应用程序。

这个不是本文的重点,具体概念可以找一下相关的文章。

如何配置项目

项目的目录结构

创建一个flask-docker的应用,应用程序的目录结构如下:

**flask-docker**
├── app.py
├── Dockerfile
├── requirements.txt

文件内容说明

app.py

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello world! Flask  Docker!!'


if __name__ == "__main__":
    app.run(debug=True)

现在,直接在命令行运行python app.py来测试这个 Flask的hello world 应用程序

python app.py

我们应该会得到类似于下面的输出结果:

* Serving Flask app 'app' (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 

Dockerfile内容:

#使用的基础镜像
FROM python:3.8.10
#设置工作目录
WORKDIR /app
#复制requirements.txt
COPY requirements.txt requirements.txt
#安装依赖包
RUN pip install -r requirements.txt
#复制当前目录下的内容到docker中
COPY . .
#启动命令
ENTRYPOINT [ "python", "-m" , "flask",  "--app","app.py", "run", "--host=0.0.0.0","--port=8000"]

Dockerfile的基本内容,具体的解释已经在文件中,这里就不多说了

如何构建 Docker 镜像

接下来,就是构建Docker镜像。主要使用“docker build”命令,具体如下。

docker build --tag flask-docker .

如何查看镜像

通过“docker images” 可以查看所有的镜像,具体如下:

docker images

命令执行后,输出如下所示:

REPOSITORY      TAG       IMAGE ID       CREATED             SIZE
flask-docker   latest    cd52b70b361a   About an hour ago   912MB
python          3.8.10     587b1bc803b3   7 months ago        885MB

如何运行容器

接下来就可以使用docker run命令,运行image。

docker run --name flask-docker-v1 -dit -p 8000:8000  flask-docker:latest

运行结束后,可以通过http://localhost:8000进行验证

如何查看容器

我们可以使用“docker ps"命令来查看当前有哪些容器在运行,具体命令如下:

docker ps

输出如下:

CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                    NAMES
a173935297cd   flask-docker   "python -m flask ru…"   5 minutes ago   Up 5 minutes   0.0.0.0:8000->8000/tcp   good_wescoff

如何停止容器

要停止当前正在运行的容器,我们可以执行“docker stop"命令,具体命令如下:

docker stop <container-id>

如何删除容器

docker rm <container-id>

到此结束!!!

相关文章
|
1月前
|
关系型数据库 MySQL API
|
26天前
|
人工智能 API 数据安全/隐私保护
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
NextChat 是一个可以在 GitHub 上一键免费部署的私人 ChatGPT 网页应用,支持 GPT3、GPT4 和 Gemini Pro 模型。该项目在 GitHub 上获得了 63.8k 的 star 数。部署简单,只需拉取 Docker 镜像并运行容器,设置 API Key 后即可使用。此外,NextChat 还提供了预设角色的面具功能,方便用户快速创建对话。
113 22
使用 Docker 一键免费部署 63.8k 的私人 ChatGPT 网页应用
|
1月前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
108 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
27天前
|
运维 开发者 Docker
Docker Compose:简化容器化应用的部署与管理
Docker Compose:简化容器化应用的部署与管理
|
27天前
|
Docker 微服务 容器
使用Docker Compose实现微服务架构的快速部署
使用Docker Compose实现微服务架构的快速部署
54 1
|
27天前
|
前端开发 开发者 Docker
深入探索Docker Compose:简化多容器应用的部署
深入探索Docker Compose:简化多容器应用的部署
58 0
|
10天前
|
监控 Docker 容器
在Docker容器中运行打包好的应用程序
在Docker容器中运行打包好的应用程序
|
10天前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
38 6
|
10天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
20 5