开始使用 Docker 和 Flask。

2025-06-07

开始使用 Docker 和 Flask。

介绍

Docker 使在 Docker 容器中构建、部署和管理应用程序变得更容易、更简单、更安全。
本文将帮助您详细了解以下内容:

  • 什么是docker?
  • 为什么要使用 Docker?
  • 什么是 docker 镜像?
  • 什么是docker容器?
  • 对 Flask 应用程序进行 Docker 化
什么是 Docker?

Docker 是一个用于开发、运输和运行应用程序的开源容器化平台。

Docker 将软件打包成标准化的单元,称为容器。容器包含软件运行所需的一切,包括库、系统工具、代码和运行时。

更多关于 Docker 的信息

为什么要使用 Docker?
  • 响应式部署和扩展。
  • 更快、更一致地交付应用程序。
  • 自动化容器创建——使用docker,可以根据应用程序源代码自动构建容器。
  • 容器重用——就像构建新容器的模板一样,现有容器可以用作基础映像。
Docker 镜像。

镜像是一个只读模板,其中包含创建容器的说明。Docker
镜像可以被视为您创建的整个应用程序环境的蓝图。

Docker 容器。
  • Docker 容器是一个虚拟化的运行时环境,用户可以在其中将应用程序与底层系统隔离。
  • 容器是紧凑、便携的单元,您可以在其中快速轻松地启动应用程序。
  • Docker 容器包含运行应用程序所需的所有基本内容,如代码、运行时、系统工具、系统库和设置。
对 Flask 应用程序进行 Docker 化
文件结构和设置
\-- dockerExample
    |-- app.py
    |-- Dockerfile
    |-- requirements.txt
   \-- templates
        |-- index.html

Enter fullscreen mode Exit fullscreen mode

首先,我创建了一个简单的 Flask 应用程序,并将以下代码添加到 app.py。

from flask import Flask,render_template
app=Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

if __name__==('__main__'):
    app.run(debug=True)
Enter fullscreen mode Exit fullscreen mode

查看如何创建一个简单的 Flask 应用程序

将以下代码添加到index.html

<!DOCTYPE html>
<html>
<head>
<title>Getting started with Docker</title>
</head>
<body>
<p>This is my Dockerfile</p>

</body>
Enter fullscreen mode Exit fullscreen mode

现在我们需要通过创建Dockerfile
将 flask 应用程序 dockerize。Dockerfile是一个文本文档,其中包含用户可以在命令行上调用来组装图像的所有命令。

在docker中添加如下代码;

FROM python:3.9.6
COPY . /doc
COPY ./requirements.txt /doc/requirements.txt
WORKDIR /doc
EXPOSE 5000:5000
RUN pip install -r requirements.txt
CMD ["python","app.py"]
Enter fullscreen mode Exit fullscreen mode
  • FROM关键字用于指定要使用的基础镜像。我们将使用 Python 基础镜像。
  • WORKDIR定义操作的主目录。
  • EXPOSE通知 Docker 容器在运行时监听指定的网络端口。
  • RUN用于安装项目的依赖项。
  • CMD为正在执行的容器提供默认值。

阅读更多

我们现在可以使用docker build命令构建我们的镜像,如下所示;

docker image build -t docker_example .
Enter fullscreen mode Exit fullscreen mode

截图(119)

构建过程完成后,我们可以使用 docker run 命令运行应用程序,如下所示;

docker run -p 5000:5000 docker_example
Enter fullscreen mode Exit fullscreen mode

截图(122)

文章来源:https://dev.to/phylis/getting-started-with-docker-flask-262p
PREV
.map()、.filter() 和 .reduce()
NEXT
使用 Docker 多阶段构建容器化 React 应用程序的另一种方法 TL;DR 准备让我们开始吧