如何把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>

到此结束!!!

相关文章
|
8天前
|
Prometheus 监控 Cloud Native
如何在Docker容器中监控和管理应用程序的性能?
如何在Docker容器中监控和管理应用程序的性能?
318 182
|
26天前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
83 12
docker 部署 sftp
kde
|
7天前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
kde
228 6
|
28天前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
471 6
kde
|
11天前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
kde
326 8
kde
|
10天前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
kde
154 3
|
Ubuntu Docker Python
部署你的flask应用到docker
部署你的flask应用到docker
338 0
|
Linux Docker Python
centos 启动停止docker,并部署 flask 容器化应用
centos 启动停止docker,并部署 flask 容器化应用
178 0
|
API 网络安全 Docker
docker 部署flask&matplotlib应用
Matplotlib 是一个 Python 的 2D绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。Flask是一个使用 Python 编写的轻量级 Web 应用框架。本文介绍通过Dockerfile生成镜像,对外部署通过API接口的方式调用绘图服务。
1094 0
docker 部署flask&matplotlib应用
|
Ubuntu 安全 应用服务中间件
部署 Flask 应用
部署 Flask 应用
973 0