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

到此结束!!!

相关文章
|
4天前
|
关系型数据库 MySQL API
|
5天前
|
Java 应用服务中间件 Linux
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
本文主要讲解了Docker的安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库以及Docker容器虚拟化与传统虚拟机比较。
【Docker容器化技术】docker安装与部署、常用命令、容器数据卷、应用部署实战、Dockerfile、服务编排docker-compose、私有仓库
|
10天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
47 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
13天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
35 2
|
14天前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
24 3
|
16天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
153 2
|
3月前
|
运维 Java Devops
阿里云云效操作报错合集之部署docker时遇到报错,该怎么办
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
运维 Kubernetes 前端开发
【云原生】阿里云服务器部署 Docker Swarm集群
阿里云服务器 一键部署 Docker Swarm 集群!
670 0
【云原生】阿里云服务器部署 Docker Swarm集群
|
弹性计算 数据可视化 关系型数据库
使用阿里云部署基于docker的mysql云服务
本篇文章将介绍如何使用阿里云安装docker、部署mysql服务,并远程连接至远端mysql
680 1
使用阿里云部署基于docker的mysql云服务
|
弹性计算 Shell Docker
阿里云一键部署 Docker Datacenter
使用ROS模板在阿里云上一键部署Docker Datacenter
7826 0
下一篇
无影云桌面