使用Docker将Python项目容器化,就是这么简单

Docker 化您的 Python 应用程序

微信搜索关注《Python学研大本营》,加入读者群,分享更多精彩

这是一个关于 dockerizing python 应用程序的简单教程。

Docker 和 Python——完美的团队

什么是Docker?

Docker 是一个容器化框架,允许您在任何环境中部署和运行应用程序以及操作系统代码。可以把它想象成把你的应用程序放在一个可以在任何地方运输和运行的容器中。

为什么是Docker?

Docker 现在在软件工程行业无处不在。它确保部署过程中的一致性,并且可以让开发人员专注于应用程序开发,而不是被部署所困,从而节省开发人员的时间。

Docker and Python

Python 是现在最流行的编程语言,它在不同行业的采用正在增长。

它易于使用,并以其直观的语法和语言特性消除了进入编程行业的障碍。

由此可见,将这两种技术结合使用对开发人员是有好处的。使用python和docker的步骤包括:

  • 编写 python 应用程序或脚本

  • 添加 docker 文件

  • 构建 docker 镜像

  • 运行 docker 容器

第 1 步:一个简单的 Python 应用程序

让我们构建一个简单的 Python 应用程序,它从用户那里获取两个数字并将它们相加。

首先为本教程创建一个目录并进入该目录。

# creates docker-tutorial directory in your user folder
mkdir ~/docker-tutorial
cd docker-tutorial

接下来,将一个简单的文件添加到名为application.py.

我们的应用程序将是一个简单的命令行应用程序,它将从用户那里获取两个数字并将它们相加。如果用户不提供任何输入,应用程序将假定这两个数字都是0。

内容application.py如下图:

import sys

# yes, just adding two numbers
def add_two_numbers(a=0, b=0):
    result = a + b
    print(f"a is {a}")
    print(f"b is {b}")
    print(f"solution is {result}")


if __name__ == "__main__":
    if len(sys.argv) > 2:
        add_two_numbers(int(sys.argv[1]), int(sys.argv[2]))
    else:
        add_two_numbers()

第 2 步:添加 Dockerfile

接下来,让我们添加 dockerfile 来对这个应用程序进行 docker 化。这仍然是在docker-tutorial同一目录中完成的。

我们将该文件命名为Dockerfile。请注意,此文件没有扩展名。

该文件告诉 docker 守护进程如何定义容器以及如何构建和运行应用程序。

Dockerfile内容如下。

FROM python:3.10.6-alpine

WORKDIR /usr/src/app

COPY . .

RUN apk update

RUN chmod a+x ./*.py

ENTRYPOINT ["python", "-u", "./application.py" ]

我检查每一行并对其进行更多解释,以便您了解这里发生的事情。

FROM — 这定义了要构建的基础层图像。Docker 为图像构建层。这允许重新使用图像层,从而节省计算和空间。alpine是 python 基础映像的标签,它是 linux 的轻量级发行版。

WORKDIR — 用作容器主要工作空间的目录。所有命令都从此目录作为参考点运行。

COPY——此命令将文件从本地文件系统复制到容器文件系统。在上面的示例中,我们复制了本地目录中的所有文件。

RUN——在构建 docker 容器时运行命令。这里我们更新alpine linux镜像中的包,更改python应用文件的权限application.py

ENTRYPOINT——这是在 docker 容器启动时运行的命令,恰当地称为 ENTRYPOINT。

第 3 步:构建 Docker 镜像

现在让我们构建 docker 镜像。这只需通过

# run in the docker-tutorial directory
docker build -t myapp .

此命令在当前目录中创建一个 docker 镜像,并将其标记为myapp.

您应该能够使用此命令查看所有图像:

docker images
# REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
# myapp         latest    d7c9e6b8dc70   3 seconds ago   48.7MB

第 4 步:运行 Docker 容器

您现在可以运行您的 docker 容器

docker run myapp
# a is 0
# b is 0
# solution is 0

您也可以将参数传递给您的应用程序,类似于下面的命令

docker run myapp 1 2
# a is 1
# b is 2
# solution is 3

这就是 dockerize python 文件所需的全部!玩得开心,保持创意!

https://medium.com/@m_vemuri/dockerize-your-python-application-beb10b948337

推荐书单

《Python从入门到精通(第2版)》

《Python从入门到精通(第2版)》从初学者角度出发,通过通俗易懂的语言、丰富多彩的实例,详细介绍了使用Python进行程序开发应该掌握的各方面技术。全书共分23章,包括初识Python、Python语言基础、运算符与表达式、流程控制语句、列表和元组、字典和集合、字符串、Python中使用正则表达式、函数、面向对象程序设计、模块、异常处理及程序调试、文件及目录操作、操作数据库、GUI界面编程、Pygame游戏编程、网络爬虫开发、使用进程和线程、网络编程、Web编程、Flask框架、e起去旅行网站、AI图像识别工具等内容。所有知识都结合具体实例进行介绍,涉及的程序代码都给出了详细的注释,读者可轻松领会Python程序开发的精髓,快速提升开发技能。除此之外,该书还附配了243集高清教学微视频及PPT电子教案。

《Python从入门到精通(第2版)》【摘要 书评 试读】- 京东图书京东JD.COM图书频道为您提供《Python从入门到精通(第2版)》在线选购,本书作者:明日科技,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!icon-default.png?t=N4P3https://item.jd.com/13284890.html

精彩回顾

ChatGPT教你如何用Python和Matplotlib绘图(上) 

ChatGPT教你如何用Python和Matplotlib绘图(下) 

《事半功倍,使用ChatGPT编写Python函数》

超快速,使用ChatGPT编写回归和分类算法

《如虎添翼,将ChatGPT和Python结合起来!》

《ChatGPT优化Python代码的小技巧》

《使用ChatGPT提升Python编程效率》 

微信搜索关注《Python学研大本营》

访问【IT今日热榜】,发现每日技术热点

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值