【云原生 | 35】Docker快速部署主流解释型语言Python
Python是一种解释型的动态语言,面向对象设计,功能十分强大。它集成了模块(modules)、异常处理(exceptions)、动态类型(dynamic typing)、高级数据结构(元组、列表、序列)、类(classes)等高级特性。Python设计精良,语法简约,表达能力很强。目前,所有主流操作系统(Windows、所有Linux、类Unix系统)都支持 Python。
🍁博主简介:
🏅云计算领域优质创作者
🏅新星计划第三季python赛道第一名
🏅阿里云ACE认证高级工程师
🏅阿里云开发者社区专家博主
✒️博主微信:15575411187
💊交流社区:小鹏linux(个人社区)欢迎您的加入!
目录
1. Python简介
Python是一种解释型的动态语言,面向对象设计,功能十分强大。
它集成了模块(modules)、异常处理(exceptions)、动态类型
(dynamic typing)、高级数据结构(元组、列表、序列)、类
(classes)等高级特性。Python设计精良,语法简约,表达能力很强。
目前,所有主流操作系统(Windows、所有Linux、类Unix系统)都支持 Python。
|
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
|
2. Python 发展历史
Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。 Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。 像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。 现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。 Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。 |
3. Python 特点
|
4. 在Docker中部署运行python
推荐用户使用Docker官方提供的Python镜像作为基础镜像
|
第一步,新建项目目录py-official,进入此目录,新建一个Dockerfile文件,内容如下:
|
FROM python:3-onbuild
CMD [ "python3.5", "./py3-sample.py" ]
新建py3-sample.py文件,计算Fibonacci数列: |
def fib(n):
a, b = 0, 1
while a < n:
print(a, end=' ')
a, b = b, a+b
print()
fib(1000)
新建requirements.txt依赖文件,读者可以在此文件中加入项目依赖程序,如Django等。此处仅新建空文件。
|
$ touch requirements.txt
第二步,使用docker build命令构建名为py2.7-sample-app的镜像 |
$ docker build -t py3-image .
第三步,通过docker run命令创建并运行容器: |
$ docker run -it --rm --name py3-container py3-image
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987
如果大家只需要运行单个Python脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方Python镜像,带参数运行容器:
|
$ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp python:3 python your-daemon-or-script.py
5. 在Docker中部署运行pypy
PyPy是一个Python实现的Python解释器和即时编译(JIT)工具,它专注与速度、效率,以及和CPython完全的兼容性。PyPy通过JIT技术可以使得Python运行速度提高近十倍,同时保证兼容性。
|
首先,设置项目目录,并新建hi.py实例程序: |
for animal in ["dog", "cat", "mouse"]:
print "%s is a mammal" % animal
然后,在根目录新建Dockerfile,基于pypy3的onbuild版本镜像: |
FROM pypy:3-onbuild
CMD [ "pypy3", "./hi.py" ]
如果用户需要使用pypy2,则可以使用:FROM pypy:2-onbuild。
onbuild版本的镜像内含若干onbuild触发器,它们可以再镜像构建期间完成一些必要的初始化操作,便于项目的直接运行。pypy的onbuild
镜像会拷贝一个requirements.txt依赖文件,运行RUN pip install安装
依赖程序,然后将当前目录拷贝至/usr/src/app。
|
下面,用户开始构建和运行此镜像: |
$ docker build -t my-python-app .
$ docker run -it --rm --name my-running-app my-pyth
如果用户只需要运行单个pypy脚本,并希望避免新建Dockerfile,那么用户可以直接使用以下指令:
|
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp pypy:3 pypy3 your-daemon-or-script.py
如果需要使用pypy2运行,则可以使用如下指令: |
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp pypy:2 pypy your-daemon-or-script.py
👑👑👑结束语👑👑👑
更多推荐
所有评论(0)