开始使用 Docker 和 Flask。
介绍
Docker 使在 Docker 容器中构建、部署和管理应用程序变得更容易、更简单、更安全。
本文将帮助您详细了解以下内容:
- 什么是docker?
- 为什么要使用 Docker?
- 什么是 docker 镜像?
- 什么是docker容器?
- 对 Flask 应用程序进行 Docker 化
什么是 Docker?
Docker 是一个用于开发、运输和运行应用程序的开源容器化平台。
Docker 将软件打包成标准化的单元,称为容器。容器包含软件运行所需的一切,包括库、系统工具、代码和运行时。
为什么要使用 Docker?
- 响应式部署和扩展。
- 更快、更一致地交付应用程序。
- 自动化容器创建——使用docker,可以根据应用程序源代码自动构建容器。
- 容器重用——就像构建新容器的模板一样,现有容器可以用作基础映像。
Docker 镜像。
镜像是一个只读模板,其中包含创建容器的说明。Docker
镜像可以被视为您创建的整个应用程序环境的蓝图。
Docker 容器。
- Docker 容器是一个虚拟化的运行时环境,用户可以在其中将应用程序与底层系统隔离。
- 容器是紧凑、便携的单元,您可以在其中快速轻松地启动应用程序。
- Docker 容器包含运行应用程序所需的所有基本内容,如代码、运行时、系统工具、系统库和设置。
对 Flask 应用程序进行 Docker 化
文件结构和设置
\-- dockerExample
|-- app.py
|-- Dockerfile
|-- requirements.txt
\-- templates
|-- index.html
首先,我创建了一个简单的 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)
将以下代码添加到index.html
<!DOCTYPE html>
<html>
<head>
<title>Getting started with Docker</title>
</head>
<body>
<p>This is my Dockerfile</p>
</body>
现在我们需要通过创建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"]
- FROM关键字用于指定要使用的基础镜像。我们将使用 Python 基础镜像。
- WORKDIR定义操作的主目录。
- EXPOSE通知 Docker 容器在运行时监听指定的网络端口。
- RUN用于安装项目的依赖项。
- CMD为正在执行的容器提供默认值。
我们现在可以使用docker build命令构建我们的镜像,如下所示;
docker image build -t docker_example .
构建过程完成后,我们可以使用 docker run 命令运行应用程序,如下所示;
docker run -p 5000:5000 docker_example