0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何创建Python服务包,并利用Docker管理数据(附源码)

如意 来源:读芯术微信公众号 作者:读芯术微信公众号 2020-09-10 15:38 次阅读

小白程序员面临的最大困难之一就是理解环境的概念。环境是指程序员进行编码的系统,这听起来貌似很容易,但随着程序员职业生涯的推荐,程序员会逐渐体会到维护“环境”是一件多么困难的事情。

这主要是因为库、IDE(集成开发环境),甚至Python代码都需要经过更新和版本升级。有时更新一个库,某段代码就会出错,需要重新修改代码。如果同时开发多个项目,就会引起依赖冲突,当某段代码导致另一段代码错误时,事情就会变得很棘手了。

另外,如果想将项目共享给一个在不同操作系统上的工作伙伴,或者将在Mac上构建的项目交付到另一个操作系统的生产服务器上,就不得不重新配置代码了。

为了解决这些问题,将项目和项目所处的环境分离的方法被称为“容器”。容器是支持环境运行的地方,与系统上的其他内容东西相分离。一旦定义了容器中的内容,重建环境就很容易了,甚至可以实现与同事共享项目。

要求

启动Docker,需要安装软件:

windows或macOS:安装Docker Desktop

linux:安装Docker,然后编写Docker

Python服务包

假设正在创建一个名为server.py的Flask服务,并设置该文件的内容,如下:

如何创建Python服务包,并利用Docker管理数据(附源码)

如上述,需保留代码依赖关系的记录。因此创建一个关于需求的txt文件,包含以下内容:

Flask==1.1.1

因此,服务包有以下结构:

如何创建Python服务包,并利用Docker管理数据(附源码)

该结构十分符合逻辑(源文件保存在独立目录中)。若执行Python程序,我们需要安装并运行Python解释器。接下来可以在本地运行这个程序,如果有15个项目同时运行,在一个容器中运行可以避免与其他项目发生冲突。

Dockerfile

运行Python代码,需要将容器打包为Docker镜像,然后运行。操作如下:

创建一个包含构建镜像所需指令的Dockerfile

然后通过Docker生成器创建镜像

简单的docker run 命令就可以创建一个正在运行应用程序的容器

Dockerfile分析

Dockerfile是一个包含合成Docker镜像说明的文件(命名为myimage):

如何创建Python服务包,并利用Docker管理数据(附源码)

Dockerfile是逐行编译的,因此生成器会生成一个图层,并将其叠加在之前的图像上。在build命令的输出中,可以看到作为步骤执行的Dockerfile指令。

如何创建Python服务包,并利用Docker管理数据(附源码)

然后可以发现镜像存储在本地图像中:

如何创建Python服务包,并利用Docker管理数据(附源码)

在开发过程中,可能需要多次为Python服务重新构建镜像,所以希望花费尽可能少的时间。

Docker和virtualenv非常相似,但又有所不同。Virtualenv允许你在Python依赖关系中切换,但必须使用主机操作系统。然而,使用Docker就可以在任何操作系统上安装和运行Python(包括Ubuntu、Debian、Alpine以及Windows Server Core)。

因此,如果你在一个团队中工作,希望可以在以后证明你的技术,就要使用Docker。如果不用docker,venv也是不错的,但它不是通向未来的凭证。

本文展示了如何创建Python服务包,并希望简化过程,使程序员的项目维持更长时间。因为当依赖关系发生变化时,它不太可能出现代码错误。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6511

    浏览量

    87584
  • python
    +关注

    关注

    51

    文章

    4671

    浏览量

    83457
  • Docker
    +关注

    关注

    0

    文章

    437

    浏览量

    11602
收藏 人收藏

    评论

    相关推荐

    使用Python创建简单的FTP服务

    可以利用 Python 的 Pyftpdlib 模块快速搭建FTP 服务器实现文件上传下载功能,以下是具体做法:安装 Pyftpdlib 模块$ sudo pip install pyftpdlib
    发表于 05-04 16:17

    如何在Docker创建容器

    Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal
    发表于 01-03 15:58

    理解Docker容器畅玩docker

    。--------------------------------------------------------------------------------------Docker服务安装和启用的必要条件。建议操作系统
    发表于 11-05 09:54

    获取源码及Ubuntu编译环境准备

    、ninja、LLVM编译工具。安装gn、ninja、LLVM编译工具时,请确保编译工具的环境变量路径唯一。获取源码开发者需要在Linux服务器上下载解压一套源代码,请参见源码获取。
    发表于 08-19 11:10

    Niobe获取源码及Ubuntu编译环境准备

    在Linux服务器上下载解压一套源代码,请参见源码获取。安装必要的库和工具使用如下apt-get命令安装编译所需的必要的库和工具:sudo apt-get install build-essential
    发表于 12-08 14:34

    Niobe获取源码及Ubuntu编译环境准备

    、ninja、LLVM编译工具。安装gn、ninja、LLVM编译工具时,请确保编译工具的环境变量路径唯一。获取源码开发者需要在Linux服务器上下载解压一套源代码,请参见源码获取。
    发表于 12-08 17:36

    python常规与命名空间

    python常规与命名空间1. 常规包在 Python 3.3 之前或者说 Python 2 中,一个
    发表于 03-11 15:46

    Docker容器管理命令(二)

    1、Docker容器管理命令的使用方法批量删除docker 容器docker cp命令docker cp :用于容器与主机之间的
    发表于 04-21 11:31

    OpenHarmony开发——系统源码编译

    控制台,按ctrl+`可以打开,创建启动docker容器,上一步执行完毕就直接进入容器内部了$ sudo docker run -it -v $
    发表于 08-30 10:08

    【Milk-V Duo 开发板免费体验】2、SDK编译环境的Docker镜像制作教程

    [\"/bin/bash\"] 创建docker镜像 在磁盘的任意位置创建一个任意目录(比如docker_build), 然后把附件的压缩
    发表于 08-24 20:23

    在基于AT32 RT-Thread的源码中开启下载Micropython开源

    Micropython Based On AT32 RTT讲述如何在基于AT32 RT-Thread 的源码中开启下载Micropython 开源
    发表于 10-25 07:06

    怎样利用Python去快速创建矩阵?

    Python提供了很多函数可以快速创建矩阵。
    的头像 发表于 06-11 17:37 1.6w次阅读
    怎样<b class='flag-5'>利用</b><b class='flag-5'>Python</b>去快速<b class='flag-5'>创建</b>矩阵?

    如何为Python应用选择最好的Docker镜像?

    使用 redis 实现消息队列,用 Psycopg 完成对于 PostgreSQL 数据库的存取等等。随之而来 Docker 就变成了程序员必不可少的常备工具。为了掌握如何将我的 Python 应用与
    发表于 10-24 11:18 615次阅读

    python有什么用 如何用python创建数据

    开发、游戏开发、机器学习、自然语言处理等领域。 在本文中,我们将介绍如何使用Python创建数据库。首先,让我们了解一下什么是数据库。 什么是数据
    的头像 发表于 08-28 16:41 777次阅读

    docker容器删除后数据还在吗

    Docker作为一个容器化平台,提供了轻量级的虚拟化解决方案,能够方便地创建、部署和管理应用程序。然而,对于Docker容器的数据持久性是一
    的头像 发表于 11-23 09:32 640次阅读