用Docker執行python程式示例

2021-10-04 23:12:26 字數 1484 閱讀 1626

這是我的測試檔案,很簡單,訪問了宿主機的資料庫

1

import pymysql

23#host = '127.0.0.1'

4 host =

'172.17.0.1'

#docker0 的位址,為了訪問宿主機服務

56 db = pymysql.connect(host,

"root"

,"root"

,"cpat"

)7 cursor = db.cursor(

)8 sql =

'select * from user;'

9 num = cursor.execute(sql)

10 data = cursor.fetchall(

)11 db.close()12

print

(data)

然後我們通過dockerfile 來構建映象

比較簡單,很容易理解

1 from python:

32 add test1.py /

3 run pip3 install pymysql

4 cmd [

"python"

,"./test1.py"

]

構建映象

docker build -t testmysql .
這裡面執行到pip安裝時可能會失敗,可以嘗試重啟docker服務

service docker restart
啟動容器(-d為後台啟動,不加;–net設定容器網路模式,預設為bridge,也可以不加)

docker run --net=bridge --name=t1 testmysql
執行檢視結果,成功

[root@izbp19edb1zuvkz0v64yfnz ~]

# docker run --net=bridge --name=t1 testmysql

((1, '1234', '0', '[email protected]', datetime.date(2020, 2, 5), 'zhangrl'

), (2, '1234', '0', '[email protected]', datetime.date(2020, 2, 6), 'zhanglu'

), (3, '1234', '0', '[email protected]', datetime.date(2020, 2, 5), 'zhangrla'

), (4, '1234', '0', '[email protected]', datetime.date(2020, 2, 5), 'zhangrlo'

))

如果想對外提供服務,如python程式監聽容器埠8080,那麼建立容器時需要將容器埠對映到主機埠,(通過-p 主機埠:容器埠),再通過主機埠訪問服務。

docker執行python檔案

專案完成後需要打包成映象然後發布,因為映象裡包含了配置檔案及所需要的包。製作映象的三種辦法 目錄 一 如果專案較小,且所需依賴不是很多,直接將專案檔案上傳至容器內,並安裝所有程式執行需要的包。最後儲存映象。二 在基礎映象上安裝所有程式執行需要的包,最後儲存映象。專案 不需要放進映象 1 載入儲存好的...

Docker打包並執行python專案

整體分為三步,首先配置dockerfile檔案,其次編譯dockerfile檔案,生成docker映象,最後執行。1.配置dockerfile 檔案 kafkapro為專案根目錄,將其打包成docker映象。專案結構截圖如下。相關dockerfile配置 如下。注意 如下 是將kafkapro資料夾...

docker 使用docker執行Nginx映象

在docker映象倉庫查詢nginx映象 建立nginx web資料夾,存放nginx的資訊 mkdir p opt nginx web 拷貝配置檔案到nginx web資料夾下 docker run name tmp nginx container d nginx 1.17 docker cp t...