如何將 Django 應用程序 Dockerize
Docker 是最流行的容器平台之一,可讓您管理容器化應用程序。Docker 為容器自動化、安全性、定制和企業支持提供架構和功能。
Docker 具有三個重要組件:Docker 客戶端(一種命令行工具)、Docker Host 和 Docker Registry。這三個組件協同工作,使您能夠構建、運行和存儲應用程序。
通過將示例 Django 應用程序容器化,了解如何使用這個神奇的工具。首先,學習在 Ubuntu、macOS 和 Windows 上安裝 Docker。
在 Ubuntu 上安裝 Docker
首先在您喜歡的操作系統上安裝 Docker。您可以按照這些說明在 Ubuntu 上安裝 Docker 或使用以下適用於 macOS 或 Windows 的說明。
在 macOS 上安裝 Docker
要在 macOS 上安裝 Docker,請確保您擁有 macOS 11 或更高版本。然後執行以下步驟:
- 從Docker 中心網站下載 Docker 。
- 雙擊Docker.dmg打開安裝程序。
- 將Docker圖標拖到應用程序文件夾中。
- 要啟動 Docker,請雙擊Docker.app 。
- 狀態欄上的 Docker 鯨魚標誌表示 Docker 正在運行。
您還可以按照Docker Mac 安裝說明通過命令行在 macOS 上安裝 Docker 。
在 Windows 上安裝 Docker
按照以下步驟在 Windows 操作系統上安裝 Docker 桌面:
- 從Docker 中心網站下載 Docker 。
- 雙擊Docker Desktop Installer.exe運行安裝程序。
- 安裝時在配置頁面啟用 Hyper-V Windows 功能。
- 按照該過程並允許所有權限,直到安裝完成。
- 安裝後,單擊關閉以完成該過程。
- 要啟動 Docker,請在桌面搜索結果中搜索並選擇 Docker Desktop。
或者,您可以按照Docker Windows 安裝說明使用命令行在 Windows 操作系統上安裝 Docker 。
創建 Django 應用程序
創建一個簡單的 Django 應用程序。當您導航到 http://127.0.0.1:8000 時,您可以看到該應用程序。您將容器化此應用程序。
創建一個 Dockerfile
要將應用程序容器化,您必須創建一個 Docker 映像來構建和運行容器。Docker 鏡像是關於如何運行容器的說明模板。
您將使用Dockerfile為應用程序創建圖像。在名為Dockerfile的根文件夾中創建一個文件。然後,將以下指令添加到文件中:
FROM python:3
WORKDIR /app
ADD. /app/
EXPOSE 8000
COPY requirements.txt /app
RUN pip3 install -r requirements.txt --no-cache-dir
COPY. /app
ENTRYPOINT ["python3"]
CMD ["manage.py", "runserver", "0.0.0.0:8000"]
Dockerfiles 使用唯一的 Docker 關鍵字來指定指令。
FROM關鍵字標識要用於構建映像的基礎映像。來自 Docker 的 Python 映像具有運行 Django 應用程序所需的組件。Docker 將在後續構建中使用相同的圖像。
WORKDIR關鍵字在容器內創建一個目錄。該示例命令將/app目錄標識為根文件夾。
ADD命令將當前文件夾中的所有內容添加到/ app文件夾中。
EXPOSE關鍵字將 Docker 鏡像內部的一個端口暴露給外界。您可以使用瀏覽器查看此端口上的容器化應用程序。
COPY關鍵字從一個文件夾複製內容並將其放入另一個文件夾。在您的情況下,它將從當前目錄複製 App 的所有內容。內容將進入容器中的App文件夾。
RUN關鍵字在當前圖像的新層中執行任何命令並提交結果。Dockerfile 中的下一步將使用生成的提交映像。
ENTRYPOINT關鍵字將容器定義為可執行文件。在這種情況下,它是 Python3。您可以將它與CMD關鍵字一起使用或代替它。Dockerfile必須指定一個或兩個CMD或ENTRYPOINT關鍵字。Docker 定義了這兩個指令如何協作。
CMD關鍵字在映像啟動時運行 Linux 命令。該指令定義了運行容器時運行的命令。
構建 Docker 鏡像
現在Dockerfile已完成,繼續構建 Docker 映像。運行以下命令來構建圖像:
docker build --tag docker-django-app:latest.
當它開始構建時,Docker 將分層構建圖像。這些層將根據Dockerfile中給出的指令數。在這種情況下,您將有九層。九個步驟將代表這些層。
成功的構建將如下所示:
現在,如果您檢查 docker 鏡像,您應該會看到新鏡像。
運行 Docker 容器
接下來,您需要在容器中運行鏡像。這是應用程序將存在的地方。運行以下命令以運行圖像:
docker run --name docker-djangoapp -p 8000:80 -d docker-django-app:latest
它應該像這樣返回容器的序列號:
Docker 運行命令允許圖像的選項標籤。在這種情況下,您希望使用–name標記來命名容器docker-djangoapp。然後使用-p在端口8000:80上運行容器。接下來,指定要創建容器的圖像。這是您之前創建的docker-django-app:latest鏡像。
docker run 命令在圖像上創建一個容器層。然後它使用指定的命令啟動它。運行容器的語法如下:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
檢查 Docker 容器以查看容器是否正在運行。當你運行docker ps時,它應該如下所示:
恭喜!您已經容器化了您的第一個應用程序。接下來,您可以將容器推送到 Docker 註冊中心進行存儲。您可以隨時從任何機器訪問您的應用程序。
您也可以在線與他人分享。註冊表為圖像提供安全性並允許對私人帳戶授予額外權限。
為什麼要對應用程序進行 Docker 化?
越來越多的開發人員正在使用 Docker 來優化任何虛擬環境中容器的構建和管理。
Docker 具有生產功能,包括向 Docker 守護進程發出構建命令的客戶端。守護進程構建圖像並運行容器。您可以構建映像並將其存儲在 Docker 註冊表中。這可確保圖像安全且可在線獲取。
Docker 提供已經配置好的帶有現成組件的官方鏡像。您可以使用這些圖像為您的應用程序快速構建容器。
發佈留言