
为了更灵活、更经济地部署和运行 Web 应用程序,应用程序容器化是全球最流行的方法之一。在本文中,我将介绍如何利用 Docker 将 Python Flask Web 应用程序转换为图像并将其推送到 Docker 中心。在本文结束时,您可以学习如何在 Docker hub 上部署实时镜像,用于连接云。
目录:将 Python Web 应用程序转换为图像并使用 Docker 推送直播
- 什么是 Docker
- 创建凭证并下载 Docker 应用程序(Macbook 版本)
- Flask 应用文档
- Dockerfile 文档
- 本地构建新的图像标签
- 将新镜像推送到 Docker Hub
- 将 Python Web 应用程序转换为图像并使用 Docker 推送直播的完整 Python 脚本
什么是 Docker
Docker 是一个开源平台,允许开发人员在容器内自动部署和运行应用程序。容器是轻量级、可移植和隔离的环境,它将应用程序及其依赖项(例如库和配置)打包在一起,从而实现跨不同计算环境的一致且可靠的执行。
以下是与 Docker 相关的一些关键概念:
- 容器化:Docker 利用容器化技术,涉及创建和运行容器。容器提供了一个隔离且可重复的环境,确保应用程序可以跨各种系统一致运行。
- Docker 镜像:镜像是一个轻量级、独立且可执行的包,其中包含运行应用程序所需的一切,包括代码、运行时、库和依赖项。图像充当容器的构建块。
- Docker 容器:容器是镜像的一个实例。它作为主机系统上的单独进程运行,与其他容器和底层基础设施隔离。容器是可移植的,可以在安装了Docker 的不同系统之间轻松移动。
- Dockerfile:Dockerfile 是一个文本文件,其中包含构建 Docker 映像的指令。它指定设置应用程序环境所需的基础映像、配置、依赖项和命令。
- Docker 注册表:Docker 注册表是存储 Docker 映像的存储库。最常用的注册表是 Docker Hub,它是一个托管大量预构建镜像的公共注册表。此外,您可以设置私有注册表来在组织内存储和共享您自己的 Docker 映像。
- Docker Compose:Docker Compose 是一个用于定义和管理多容器应用程序的工具。它允许您使用 YAML 文件描述复杂的应用程序环境,然后将它们作为一个单元进行部署和管理。
- 编排:Docker Swarm 和 Kubernetes 是编排平台,可帮助跨多个主机或集群管理和扩展容器化应用程序。它们提供容器的自动化部署、扩展、负载平衡和自我修复功能。
Docker 因其能够简化应用程序的打包、部署和扩展而受到欢迎。它促进一致且高效的开发工作流程,使团队更轻松地跨不同环境协作和部署应用程序。
创建凭证并下载 Docker 应用程序
Docker 提供了一个免费层,其中包括 1 个非公开的私有存储库。创建新帐户后,我们需要下载 Docker 应用程序并安装在本地设备上。它有Window版本、Linux版本、OS版本
Flask 应用文档
首先,我们需要根据Flask框架结构准备一整套Flask应用文档。我们必须检查的主要内容之一是 app.py 中的端口和主机值。请. 务必在 Flask 主应用程序脚本中添加这些参数。
if __name__ == "__main__" :
app . run ( debug = True , host = "0.0.0.0" , port = 8000 )
Dockerfile 文档
在Flask应用程序的根级别(与requirements.txt位于同一层),我们需要添加一个Dockerfile。在这个文件中,我们主要设置和配置Docker镜像的几个关键组件:
- 语言版本
- 目录路径
- 复制依赖项
- 运行并安装依赖项
- 复制 Flask 应用程序文档并放置在某个位置
- 命令并运行
这是一个示例:
FROM python : 3.9.6
WORKDIR /python-flaskdemo
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY ./democn ./democn
CMD [ "python" , "./democn/app.py" ]
在本地命令并构建新的 Docker Image 标签
当文件夹中的所有文档准备就绪后,我们可以 cd 该文件夹并通过以下命令使用文档构建图像:
docker build -t flaskdemo .
对于这里的flaskdemo来说,就是本地的图片标签名。您可以随意命名。构建成功后,镜像名称会显示在Docker Desktop本地界面中
镜像构建完成后,您可以尝试在本地运行并检查 Web 应用程序是否按预期运行。这个过程类似于本地运行的Flask应用程序
docker run -p 8000:8000 flaskdemo
将本地 Docker 镜像标签推送到 Docker Hub
现在是时候将准备好的 Web 应用程序映像推送到 Docker Hub 了。基本上,这是一个启动的过程。您的终端中有几个步骤:
第一步:docker登录
使用此命令检查 Docker 桌面是否已与 Docker hub 连接。确保它已连接到集线器,否则您需要首先使用之前创建的凭据登录。
第2步:docker镜像
输入此命令可查找您要推送的图像标签。先抄下来放下,一会儿就可以用了。
步骤 3:docker tag 并将现有镜像推送到 Docker Hub
键入此命令以及您刚才复制的标签 ID、Docker Hub 项目路径以及 Docker Hub 上显示的新映像名称。镜像名称可能与本地镜像名称不同,因为Docker Desktop 会将渲染的配置和文档推送到新镜像。
docker tag tagID dockerHubname/projectname:newimagename
将 Python Web 应用程序转换为图像并使用 Docker 推送直播的完整 Python 脚本
如果您对第 81 章 – 将 Python Web 应用程序转换为图像并使用 Docker 推送它们感兴趣,请添加消息“第 81 章 + Python Web 应用程序的完整Docker 映像转换脚本”来订阅我们的新闻通讯。当最新的应用程序脚本上线时,我们会向您发送脚本。
我希望您喜欢阅读第 81 章 – 将 Python Web 应用程序转换为图像并使用 Docker 实时推送它们。如果您这样做了,请通过执行下列操作之一来支持我们,因为这总是对我们的频道有所帮助。
- 通过 PayPal ( paypal.me/Easy2digital ) 支持并捐赠我们的频道
- 订阅我的频道并打开通知铃Easy2Digital Youtube 频道。
- 关注并喜欢我的页面Easy2Digital Facebook 页面
- 使用主题标签 #easy2digital 在您的社交网络上分享文章
- 您订阅我们的每周通讯即可接收 Easy2Digital 最新文章、视频和折扣代码
- 通过 Patreon 订阅我们的月度会员即可享受独家优惠 ( www.patreon.com/louisludigital )