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 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...