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

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

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

{完}

熱點內容
c語言實現數據結構的演算法 發布:2025-03-21 14:35:55 瀏覽:414
androidphp最佳實踐pdf 發布:2025-03-21 14:33:44 瀏覽:728
哪裡下安卓版60秒 發布:2025-03-21 14:32:06 瀏覽:291
javarsa分段加密 發布:2025-03-21 14:31:57 瀏覽:511
中國式家長怎麼換伺服器 發布:2025-03-21 14:21:58 瀏覽:846
腳本守約 發布:2025-03-21 14:20:55 瀏覽:102
安卓手機清理存儲空間會怎麼樣 發布:2025-03-21 14:20:17 瀏覽:23
平板怎麼給照片加密 發布:2025-03-21 14:20:12 瀏覽:1001
安卓換手機傳照片用什麼最快 發布:2025-03-21 14:17:56 瀏覽:792
學數控編程大概多少錢 發布:2025-03-21 14:09:28 瀏覽:759