當前位置:首頁 » 編程語言 » 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。還有一些更輕量級的基礎鏡像,讀者可以自行測試。

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

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

{完}

熱點內容
視頻伺服器搭建海康 發布:2025-04-30 23:50:29 瀏覽:90
xp共享怎麼設置密碼 發布:2025-04-30 23:50:24 瀏覽:155
租用電腦主機搭建伺服器 發布:2025-04-30 23:28:06 瀏覽:729
php子類調用父類方法 發布:2025-04-30 23:11:55 瀏覽:673
存檔加密id 發布:2025-04-30 22:20:50 瀏覽:741
mac搭建php環境 發布:2025-04-30 21:58:13 瀏覽:134
雅迪電動車配置有哪些 發布:2025-04-30 21:38:27 瀏覽:154
為什麼用文件存儲取代mysql 發布:2025-04-30 21:17:26 瀏覽:609
我的世界免費伺服器ip 發布:2025-04-30 20:41:26 瀏覽:772
華為雲相冊在哪裡找安卓11 發布:2025-04-30 20:19:59 瀏覽:271