為Python Flask應用程序創建Docker映像可以簡化部署,並確保在各種環境中保持一致性。 Docker將應用程序及其依賴關系封裝到一個可以移動的容器中。在這篇博客文章中,我們將逐步介紹如何為一個簡單的Python Flask服務器建立Docker映像。

步驟1:創建你的Flask應用

首先,你需要一個Flask應用程序。下面是一個簡單的範例, 可以讓你開始:

# app.py
from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Welcome to the Flask App!"

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)

這段程式碼創建了一個基本的Flask服務器,在根URL回應”Welcome to the Flask App!”。

步驟2:設置需求檔案

接著,創建一個requirements.txt文件,列出Flask庫(以及你的應用程序可能需要的任何其他依賴)。這個文件告訴Docker你的應用程序需要執行哪些Python封包。

Flask==2.2.2
Werkzeug==2.2.2

步驟3:創建Docker文件

Dockerfile是一個包含所有用戶可以在命令行中調用以組裝映像的命令的文本檔案。以下是如何為你的Flask應用程序設置一個:

# Dockerfile
FROM python:3.10-slim

# Set the working directory in the container
WORKDIR /app

# Copy the dependencies file to the working directory
COPY requirements.txt .

# Install any dependencies
RUN pip install --no-cache-dir -r requirements.txt

# Copy the content of the local src directory to the working directory
COPY . .

# Specify the command to run on container start
CMD [ "python", "./app.py" ]

這個Dockerfile執行以下操作:

  • 從Python 3.10 slim映像開始。
  • 將容器內的工作目錄設定為/app
  • 複製requirements.txt文件並安裝Python依賴。
  • 將你的應用程序的其餘代碼複製到容器中。
  • 指定運行應用程序的命令。

步驟4:建立 Docker 映像

有了Dockerfile,你就可以建立Docker映像了。打開終端並從你的Dockerfile所在的目錄運行以下命令:

docker build -t flask-app .

此命令在本地建立一個新的Docker映像,並將其標記為flask-app

步驟5:在Docker容器中運行Flask應用

要在Docker容器內運行你的Flask應用,請使用以下命令:

docker run -p 5000:5000 flask-app

這告訴Docker運行flask-app映像作為容器,並將你本地機器上的端口5000映射到容器上的端口5000,讓你可以通過你的網路瀏覽器中的localhost:5000訪問你的Flask服務器。

總結

恭喜!你已經成功地使用Docker將Python Flask應用程序進行容器化。這種設置不僅簡化了開發和測試階段,還有助於生產部署,確保你的應用程序在任何地方都以相同的方式運行。Docker為部署網路應用程序提供了一個強大且可擴展的解決方案,使其成為現代軟件開發工作流的絕佳選擇。