當前位置:首頁 » 編程語言 » pythondocker

pythondocker

發布時間: 2025-03-21 01:46:04

『壹』 python教程:使用Docker打包Python應用

採用Docker來打包Python應用,相較於Python虛擬環境,其隔離性更高,但低於虛擬機。在選擇不同的隔離程度時,工程師需要綜合考慮以下因素。至於選用Python虛擬環境、Docker、虛擬機或其他打包方式,需工程師自行評估。

以下以一個最小應用為例,展示Docker打包的過程。本文的開發環境為Ubuntu 22.04,其他操作系統的步驟大致相同。

准備環境,即安裝Docker和相關工具。

安裝完成後,可以查看版本信息。

對於Docker引擎23.0之後的版本,還需要安裝一個buildx。這是因為從該版本開始,Docker構建鏡像的方式有所變化,但運行鏡像的語法不變。

運行一個hello-world容器,以驗證安裝是否成功。

如果拉取鏡像失敗,可能是網路無法訪問Docker Hub鏡像倉庫的問題,可以配置國內鏡像倉庫代理來解決,此處不詳細說明,假設問題已解決。

對於Python應用,需要py代碼文件和依賴描述文件requirements.txt。以一個單文件應用為例,代碼文件夾內容如下:

其中app.py是一個簡單的HTTP服務端應用:

requirements.txt中列出了該應用的依賴,因為本應用無外部依賴,所以該文件為空。

准備好應用後,先在本地進行測試,確保無誤後再進行打包。

新建一個鏡像構建文件Dockerfile,通常放在當前目錄,取名為Dockerfile。以下是一個Dockerfile的示例內容:

構建鏡像的過程可以理解為選擇一個基礎鏡像,進行相應改動,再保存下一個瞬時狀態,以確保每次啟動都能反映當時的狀態。上述內容包括:

使用以下命令行進行構建:

構建成功後,可以查看驗證一下:

可以看到該鏡像大小為400多MB,對於我們簡單的單文件應用來說還是比較大的。這是為了隔離度而付出的開銷。可以通過以下兩個思路來縮減鏡像尺寸:

將Dockerfile的內容修改如下,再次構建出兩個鏡像app2和app3:

Dockerfile for app2:

Dockerfile for app3:

再次查看一下:

可以看到當基礎鏡像為python:3.10-slim時,鏡像大小變成了135MB。還有一些更輕量級的基礎鏡像,讀者可以自行測試。

鏡像運行的實質是將鏡像實例化成容器,可以同步運行,也可以後台運行。

驗證完成後,該鏡像就可以發布,可以選擇發布到某個鏡像倉庫,也可以直接打包發布,本文暫不涉及。

{完}

熱點內容
cf安卓和蘋果怎麼互換 發布:2025-05-08 09:24:36 瀏覽:313
圖解演算法pdf 發布:2025-05-08 09:24:36 瀏覽:649
php無資料庫 發布:2025-05-08 09:23:45 瀏覽:55
伺服器後端怎麼做資料庫 發布:2025-05-08 09:22:07 瀏覽:584
我的世界網易版喪屍伺服器在哪裡玩 發布:2025-05-08 09:09:32 瀏覽:276
notepad開發c語言 發布:2025-05-08 09:07:22 瀏覽:276
安卓金手指怎麼用 發布:2025-05-08 08:37:51 瀏覽:160
萬能鑰匙資料庫 發布:2025-05-08 08:37:04 瀏覽:998
釘釘使用的雲伺服器 發布:2025-05-08 08:27:59 瀏覽:904
k2搭建伺服器 發布:2025-05-08 08:27:58 瀏覽:397