<返回更多

如何制作一个 Flask 应用的 Docker 镜像

2023-04-15  微信公众号   IT仔的笔记本
加入收藏

步骤1:准备一个 Flask 应用

首先,我们需要有一个正在运行的 Flask 应用。在本例中,我们假设您已经使用 flask 框架创建了一个名为 App.py 的 Python/ target=_blank class=infotextkey>Python Web 应用程序,同时有静态资源目录 static 和模板文件目录 templates 如下所示:

./
├── app.py
├── requirements.txt
├── static/
│   ├── css/
│   ├── img/
│   └── js/
└── templates/
    ├── login.html
    ├── logging.html
    ├── yunwei.html
    ├── 404.html
    └── weixin.html

flask应用安装自己需求进行开发,基本框架如下:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, World!'

if __name__ == '__mAIn__':
    app.run()

当您启动该应用后,在命令窗口中应该看到类似以下的信息表示 Flask 应用服务已经成功启动:

* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

请确保您的应用已正确运行后开始下面步骤。

步骤2:创建 Dockerfile

在此步骤中,我们将创建一个 Dockerfile 文件来定义 Docker 镜像的构建过程。

在项目根目录下创建一个名为 Dockerfile 的文件,并添加以下内容:(Dockerfile文件与app.py同目录)

# 指定要使用的基础镜像
FROM python:3.9-slim-buster

# 将应用复制到容器中
WORKDIR /app
COPY . /app

# 安装应用所需的依赖项
RUN pip install --no-cache-dir -r requirements.txt

# 暴露应用程序的端口号
EXPOSE 5000

# 设置启动命令
CMD ["python", "app.py"]

让我们一步步解析这个 Dockerfile 文件:

步骤 3:构建 Docker 镜像(以阿里云镜像仓库为例)

一旦有了 Dockerfile 文件,我们就可以使用 docker build 命令将其转换为一个可重复的 Docker 镜像。确保您当前位于包含 Dockerfile 文件的目录中,并执行以下命令:

docker build -t your-repository-url/your-image-name:tag .

该命令将使用 Dockerfile 创建一个名为 your-image-name、带有 tag 标签的本地镜像,并上传到您配置好的 Docker Registry 中,这里以阿里云镜像仓库为例。

请注意将 your-repository-url 替换为您的具体仓库 URL 名称, your-image-name 为您的镜像名称, tag 为版本号或标识符(如 latest)。

在运行完这个命令后,如果一切顺利 Docker 将会依照 Dockerfile 构建出一个新的镜像并在其中部署我们的 Flask 应用。最终命令示例如下:

docker build -t registry.cn-hangzhou.aliyuncs.com/your-repository/your-image-name:tag .

步骤 4:上传到阿里云镜像仓库

阿里云提供了自己的容器镜像服务(容器 registry),现在将打包好的 Docker 镜像上传到阿里云仓库中:

4.1:Docker 镜像登录

使用 Docker 命令行工具,输入以下命令以在本地登录到您的阿里云账号:

docker login --username=<userId> registry.cn-hangzhou.aliyuncs.com

当您输入密码并通过身份验证后,您将得到类似以下输出:

Login Succeeded

4.2:Push 到阿里云镜像仓库

您已经拥有一个 Docker 镜像,接下来只需要将它 push 到阿里云镜像仓库:

docker push registry.cn-hangzhou.aliyuncs.com/your-repository/your-image-name:tag

其中 your-repository 是您创建的阿里云命名空间名称,your-image-name 和 tag 和之前创建镜像时保持一致。

上传成功后执行该命令后将应用程序的完整镜像保存到阿里云容器镜像服务。

如何制作一个 Flask 应用的 Docker 镜像

最后,请注意在构建和推送 Docker 镜像时指定合适的版本控制 tag,并在推送后确保您已经停止并删除了本地。

如何制作一个 Flask 应用的 Docker 镜像

 

4.3:以后可以直接拉取镜像随时使用,做到一次构建到处使用。

关键词:Docker      点击(1)
声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多Docker相关>>>