如何將 Django 應用程序 Dockerize

如何將 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 或更高版本。然後執行以下步驟:

  1. Docker 中心網站下載 Docker 。
  2. 雙擊Docker.dmg打開安裝程序。
  3. Docker圖標拖到應用程序文件夾中。
  4. 要啟動 Docker,雙擊Docker.app 。
  5. 狀態欄上的 Docker 鯨魚標誌表示 Docker 正在運行。

您還可以按照Docker Mac 安裝說明通過命令行在 macOS 上安裝 Docker 。

在 Windows 上安裝 Docker

按照以下步驟在 Windows 操作系統上安裝 Docker 桌面:

  1. Docker 中心網站下載 Docker 。
  2. 雙擊Docker Desktop Installer.exe運行安裝程序。
  3. 安裝時在配置頁面啟用 Hyper-V Windows 功能。
  4. 按照該過程並允許所有權限,直到安裝完成。
  5. 安裝後,單擊關閉以完成該過程。
  6. 要啟動 Docker,請在桌面搜索結果中搜索並選擇 Docker Desktop。

或者,您可以按照Docker Windows 安裝說明使用命令行在 Windows 操作系統上安裝 Docker 。

創建 Django 應用程序

創建一個簡單的 Django 應用程序。當您導航到 http://127.0.0.1:8000 時,您可以看到該應用程序。您將容器化此應用程序。

帶有 Hello docker H1 的瀏覽器上的應用程序

創建一個 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必須指定一個或兩個CMDENTRYPOINT關鍵字。Docker 定義了這兩個指令如何協作。

CMD關鍵字在映像啟動時運行 Linux 命令。該指令定義了運行容器時運行的命令。

構建 Docker 鏡像

現在Dockerfile已完成,繼續構建 Docker 映像。運行以下命令來構建圖像:

docker build --tag docker-django-app:latest.

當它開始構建時,Docker 將分層構建圖像。這些層將根據Dockerfile中給出的指令數。在這種情況下,您將有九層。九個步驟將代表這些層。

成功的構建將如下所示:

docker成功構建鏡像

現在,如果您檢查 docker 鏡像,您應該會看到新鏡像。

在 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 註冊表中。這可確保圖像安全且可在線獲取。

Docker 提供已經配置好的帶有現成組件的官方鏡像。您可以使用這些圖像為您的應用程序快速構建容器。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *