編程學習網 > 編程語言 > Python > 使用Docker將Python項目容器化教程
2023
09-18

使用Docker將Python項目容器化教程

這是一個關于 dockerizing python 應用程序的簡單教程。

什么是Docker?
Docker 是一個容器化框架,允許您在任何環境中部署和運行應用程序以及操作系統代碼??梢园阉胂蟪砂涯愕膽贸绦蚍旁谝粋€可以在任何地方運輸和運行的容器中。

為什么是Docker?
Docker 現在在軟件工程行業無處不在。它確保部署過程中的一致性,并且可以讓開發人員專注于應用程序開發,而不是被部署所困,從而節省開發人員的時間。

Docker and Python
Python 是現在最流行的編程語言,它在不同行業的采用正在增長。

它易于使用,并以其直觀的語法和語言特性消除了進入編程行業的障礙。

由此可見,將這兩種技術結合使用對開發人員是有好處的。使用python和docker的步驟包括:

編寫 python 應用程序或腳本
添加 docker 文件
構建 docker 鏡像
運行 docker 容器
第 1 步:一個簡單的 Python 應用程序
讓我們構建一個簡單的 Python 應用程序,它從用戶那里獲取兩個數字并將它們相加。

首先為本教程創建一個目錄并進入該目錄。

# creates docker-tutorial directory in your user folder
mkdir ~/docker-tutorial
cd docker-tutorial
接下來,將一個簡單的文件添加到名為application.py.

我們的應用程序將是一個簡單的命令行應用程序,它將從用戶那里獲取兩個數字并將它們相加。如果用戶不提供任何輸入,應用程序將假定這兩個數字都是0。

內容application.py如下圖:

import sys

# yes, just adding two numbers
def add_two_numbers(a=0, b=0):
    result = a + b
    print(f"a is {a}")
    print(f"b is ")
    print(f"solution is {result}")


if __name__ == "__main__":
    if len(sys.argv) > 2:
        add_two_numbers(int(sys.argv[1]), int(sys.argv[2]))
    else:
        add_two_numbers()
第 2 步:添加 Dockerfile
接下來,讓我們添加 dockerfile 來對這個應用程序進行 docker 化。這仍然是在docker-tutorial同一目錄中完成的。

我們將該文件命名為Dockerfile。請注意,此文件沒有擴展名。

該文件告訴 docker 守護進程如何定義容器以及如何構建和運行應用程序。

Dockerfile內容如下。

FROM python:3.10.6-alpine

WORKDIR /usr/src/app

COPY . .

RUN apk update

RUN chmod a+x ./*.py

ENTRYPOINT ["python", "-u", "./application.py" ]
我檢查每一行并對其進行更多解釋,以便您了解這里發生的事情。

FROM — 這定義了要構建的基礎層圖像。Docker 為圖像構建層。這允許重新使用圖像層,從而節省計算和空間。alpine是 python 基礎映像的標簽,它是 linux 的輕量級發行版。

WORKDIR — 用作容器主要工作空間的目錄。所有命令都從此目錄作為參考點運行。

COPY——此命令將文件從本地文件系統復制到容器文件系統。在上面的示例中,我們復制了本地目錄中的所有文件。

RUN——在構建 docker 容器時運行命令。這里我們更新alpine linux鏡像中的包,更改python應用文件的權限application.py

ENTRYPOINT——這是在 docker 容器啟動時運行的命令,恰當地稱為 ENTRYPOINT。

第 3 步:構建 Docker 鏡像
現在讓我們構建 docker 鏡像。這只需通過

# run in the docker-tutorial directory
docker build -t myapp .
此命令在當前目錄中創建一個 docker 鏡像,并將其標記為myapp.

您應該能夠使用此命令查看所有圖像:

docker images
# REPOSITORY    TAG       IMAGE ID       CREATED         SIZE
# myapp         latest    d7c9e6b8dc70   3 seconds ago   48.7MB
第 4 步:運行 Docker 容器
您現在可以運行您的 docker 容器

docker run myapp
# a is 0
# b is 0
# solution is 0
您也可以將參數傳遞給您的應用程序,類似于下面的命令

docker run myapp 1 2
# a is 1
# b is 2
# solution is 3

這就是 dockerize python 文件所需的全部!玩得開心,保持創意!

以上就是使用Docker將Python項目容器化教程的詳細內容,想要了解更多Python教程歡迎持續關注編程學習網。

掃碼二維碼 獲取免費視頻學習資料

Python編程學習

查 看2022高級編程視頻教程免費獲取