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

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

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

{完}

熱點內容
linuxh264 發布:2025-07-17 12:20:12 瀏覽:480
主題密碼怎麼改 發布:2025-07-17 12:18:08 瀏覽:603
南京編譯中心招聘 發布:2025-07-17 12:18:08 瀏覽:960
未轉變者如何創伺服器 發布:2025-07-17 12:12:29 瀏覽:298
2014年3月c語言題庫 發布:2025-07-17 12:04:30 瀏覽:717
appid怎麼改密碼 發布:2025-07-17 12:02:43 瀏覽:176
手機端拍照上傳圖片 發布:2025-07-17 11:58:59 瀏覽:67
人事管理系統的資料庫設計 發布:2025-07-17 11:54:27 瀏覽:229
統治戰場kk腳本 發布:2025-07-17 11:53:45 瀏覽:239
安卓的數據線介面有什麼顏色 發布:2025-07-17 11:53:03 瀏覽:871