Docker 程式設計開發Python

2021-10-08 14:40:11 字數 4569 閱讀 7419

python 是一種解釋型動態語言,是功能強大的物件導向語言,整合了模組(modules)、異常處理(exception)、動態型別(dynamic typing)、高階資料結構(元組、列表、序列)、類(classes)等高階特性。

1、新建工作目錄python,進入此目錄,然後使用docker pull 命令拉取官方映象:

$ mkdir python

$ cd python

$ docker pull python

2、新建dockerfile檔案,內容如下:

from python:3.5-onbuild

cmd ["python3.5", "./py3-sample.py"]

3、新建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)

4、新建requirements.txt依賴檔案,可在此檔案中加入專案依賴程式,如django等。此處僅新建空檔案:

$ touch requirements.txt
5、使用docker build命令構建名為py3-image的映象:

$ docker build -t py3-image .
6、使用docker images命令進行檢視

$ docker images
7、通過docker run命令建立並執行容器:

如果只需要執行單個python指令碼,直接使用官方python映象,單引數執行容器:

$ docker run -it --rm --name my-py3 -v "$(

pwd)

如想深入了解python的官方映象,包括映象的原始dockerfile、onbuild指令等具體實行內容,可參考github上的docker-library/offcial-images倉庫。

pypy是乙個python實現的python直譯器和即時編譯(jit)工具,它專注於速度,效率,與cpython完全相容。pypy通過jit技術可以使得python執行速度提高近10倍,同時保證相容性。

** 1、設定專案目錄,並新建hi.py例項程式:**

for animal in ["dog", "cat", "mouse"]:

print "%s is a mammal" % animal

2、新建dockerfile,基於pypy3的onbuild版本映象如下:

from pypy:3-onbuild

cmd ["pypy3", "./hi.py"]

如果只需執行單個pypy指令碼,並希望避免新建dockerfile,可直接使用如下指令:

flask是乙個使用python編寫的輕量級web應用架構。基於werkzeug wsgi工具箱和jinja2模板引擎,flask使用bsd授權。flask也被稱為「microframework」,因為它僅僅使用簡單的核心,使用extension來增加其他功能。

flask的特色如下:

內建開發用伺服器和debugger;

整合單元測試(unit testing);

restful request dispatching;

使用jinja2模板引擎;

支援secure cookies(client side session);

100%wsgi1.0相容;

基於unicode;

詳細的檔案、教學;

可用extensions增加其他功能 。

flask是目前廣受歡迎的常用python web方案之一。

3.1 使用dockerhub 映象

src/

run.py

_init_.py

views.py

static/

templates/

run.py內容如下:

#!flask/bin/python

'0.0.0.0'

, port=

5000

, debug=ture)

_init.py內容如下:

from flask import flask
2、獲取docker hub的flask映象:

$ docker pull verdverm/flask

pwd)"/src:/src -p 5000:5000 verdverm/flask

3.2 使用compose構建flask + mongodb服務

import os

from flask import flask, redirect, url_for, request, render_template

from pymongo import mongoclient

clent = mongoclient(os.environ[

'db_port_27017_tcp_addr'],

27017

)db = client.tododb

'/')

deftodo()

: _items = db.tododb.find(

) items =

[item for item in _items]

return render_template(

'index.html'

, items=items)

'/new'

, methods=

['post'])

defnew()

: item_doc=

db.tododb.insert_one(item_doc)

return redirect(url_for(

'todo'))

if _name_ ==

"_main_"

:'0.0.0.0'

, port=

80, debug=

true

)

2、新建templates資料夾,放置flask框架的前端模板檔案index.html,內容如下:

action

="/new"

method

="post"

>

type

="text"

name

="name"

>

input

>

type

="text"

name

="description"

>

input

>

type

="submit"

>

input

>

form

>

>

} h1

>

>

} p>

3、回到專案根目錄,新建requirements.txt檔案,內容如下:

flask

pymongo

4、新建dockerfile檔案,內容如下:

from python:2.7 # 基礎映象

add . /webdir

workdir /webdir # 確定工作目錄

run pip install -r requirements.txt # 安裝依賴程式

expose 80 # 暴露80埠

5、新建docker-compose.yml 檔案,內容如下:

"27017"python的相關資源如下:

python官網:

pypy官網:

flask官網:

uwsgi官方倉庫:

Docker 程式設計開發Go

go語言 也稱golang 是乙個由google 主導研發的程式語言,於2009年推出。它的語法清晰明了,設計精力,擁有一些先進的特性,還有乙個龐大的標準庫。go的基本設計理念是 編譯效率 執行效率和開發效率要三者兼顧。使用go開發,一方面有許多靈活的語法支援,另一方面可以媲美c c 的執行和編譯效...

程式設計 Docker開發完全自學手冊

docker 是 paas 提供商 dotcloud 開源的乙個基於 lxc 的高階容器引擎,源 託管在 github 上,基於go語言並遵從apache2.0協議開源。docker 是乙個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到乙個可移植的容器中,然後發布到任何流行的linux機...

python是高階動態程式語言 Python語言

python是一門跨平台 開源 免費的解釋型高階動態程式語言。python支援命令式程式設計 how to do 函式式程式設計 what to do 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...