Django アプリを Docker 化する方法

Django アプリを Docker 化する方法

Docker は最も人気のあるコンテナー プラットフォームの 1 つであり、コンテナー化されたアプリケーションを管理できます。Docker は、コンテナの自動化、セキュリティ、カスタマイズ、およびエンタープライズ サポートのためのアーキテクチャと機能を提供します。

Docker には、Docker クライアント (コマンドライン ツール)、Docker ホスト、および Docker レジストリの 3 つの重要なコンポーネントがあります。これら 3 つのコンポーネントが連携して、アプリケーションの構築、実行、および保存を可能にします。

サンプルの Django アプリをコンテナー化して、この素晴らしいツールを使用する方法を確認してください。まず、Ubuntu、macOS、および Windows に Docker をインストールする方法を学びます。

Ubuntu に Docker をインストールする

まず、好みのオペレーティング システムに Docker をインストールします。これらの注意事項に従って Ubuntu に Docker をインストールするか、macOS または Windows 用の次の手順を使用してください。

macOS に Docker をインストールする

macOS に Docker をインストールするには、macOS 11 以降を使用していることを確認してください。次に、次の手順に従います。

  1. Docker ハブ Web サイトから Docker をダウンロードします。
  2. Docker.dmgをダブルクリックしてインストーラーを開きます。
  3. Dockerアイコンを Applications フォルダーにドラッグします。
  4. Docker を起動するには、Docker.appをダブルクリックします。
  5. ステータス バーの Docker のクジラのロゴは、Docker が実行中であることを示します。

Docker Mac のインストール手順に従って、コマンド ラインから macOS に Docker をインストールすることもできます。

Windows に Docker をインストールする

Windows OS に Docker デスクトップをインストールするには、次の手順に従います。

  1. Docker ハブ Web サイトから Docker をダウンロードします。
  2. Docker Desktop Installer.exeをダブルクリックしてインストーラーを実行します。
  3. インストール時に、構成ページで Hyper-V Windows 機能を有効にします。
  4. プロセスに従い、インストールが完了するまですべての権限を許可します。
  5. インストール後、[閉じる] をクリックしてプロセスを完了します。
  6. Docker を起動するには、デスクトップの検索結果で Docker デスクトップを検索して選択します。

または、 Docker Windows のインストール手順に従って、コマンド ラインを使用して Windows OS に 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"]

Dockerfile は、固有の Docker キーワードを使用して指示を指定します。

FROMキーワードは、イメージを構築するベース イメージを識別します。Docker の Python イメージには、Django アプリを実行するために必要なコンポーネントが含まれています。Docker は、後続のビルドで同じイメージを使用します。

WORKDIRキーワードは、コンテナ内にディレクトリを作成しますこのコマンド例では、 /appディレクトリがルート フォルダーとして識別されます。

ADDコマンドは、現在のフォルダー内のすべてを /app フォルダーに追加します

EXPOSEキーワードは、Docker イメージ内のポートを外部に公開します。ブラウザーを使用して、このポートでコンテナー化されたアプリを表示できます。

COPYキーワードは、あるフォルダーからコンテンツをコピーし、別のフォルダーに配置します。あなたの場合、現在のディレクトリからアプリのすべてのコンテンツをコピーします。コンテンツはコンテナーのAppフォルダーに移動します。

RUNキーワードは、現在のイメージの新しいレイヤーでコマンドを実行し、結果をコミットします。Dockerfile の次のステップでは、結果としてコミットされたイメージが使用されます。

ENTRYPOINTキーワードは、コンテナーを実行可能ファイルとして定義しますこの場合、それは Python3 です。CMD キーワードと一緒に、またはCMDキーワードの代わりに使用できます。Dockerfile では、 CMDまたはENTRYPOINTキーワードのいずれかまたは両方を指定する必要があります。Docker は、2 つの命令がどのように連携するかを定義します。

CMDキーワードは、イメージの開始時に Linux コマンドを実行します。この命令は、コンテナーを実行するときに実行するコマンドを定義します。

Docker イメージをビルドする

Dockerfileが完成したので、Docker イメージをビルドします。次のコマンドを実行して、イメージをビルドします。

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

ビルドを開始すると、Docker はイメージをレイヤーでビルドします。レイヤーは、Dockerfileで指定された命令の数に従います。この場合、9 つのレイヤーがあります。これらのレイヤーは 9 つのステップで表されます。

成功したビルドは次のように表示されます。

docker は正常にイメージをビルドします

ここで、docker イメージを確認すると、新しいイメージが表示されるはずです。

docker で新しくビルドされたイメージ

Docker コンテナを実行する

次に、コンテナーでイメージを実行する必要があります。これは、アプリが存在する場所です。次のコマンドを実行して、イメージを実行します。

docker run --name docker-djangoapp -p 8000:80 -d docker-django-app:latest

次のように、コンテナーのシリアル番号を返す必要があります。

新しいコンテナ化されたアプリ

Docker run コマンドでは、イメージのオプションタグを使用できます。この場合、–nameタグを使用してコンテナーに docker-djangoappという名前を付けます。次に、ポート8000:80-pを使用してコンテナーを実行します。次に、コンテナを作成するイメージを指定します。これは、先ほど作成したdocker-django-app:latestイメージです。

docker run コマンドは、イメージ上にコンテナー レイヤーを作成します。次に、指定されたコマンドを使用して起動します。コンテナーを実行するための構文は次のとおりです。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Docker コンテナーをチェックして、コンテナーが実行されているかどうかを確認します。docker psを実行すると、次のように表示されます。

Docker で実行される新しいコンテナ

おめでとう!最初のアプリをコンテナ化しました。次に、ストレージ用の Docker レジストリーにコンテナーをプッシュできます。どのマシンからでもいつでもアプリケーションにアクセスできます。

オンラインで他のユーザーと共有することもできます。レジストリは、イメージのセキュリティを提供し、プライベート アカウントに特別な権限を許可します。

アプリを Docker 化する理由

ますます多くの開発者が Docker を使用して、任意の仮想環境でのコンテナーの構築と管理を最適化しています。

Docker には、ビルド コマンドを Docker デーモンに発行するクライアントなど、生産的な機能が備わっています。デーモンはイメージを構築し、コンテナーを実行します。イメージを構築して Docker レジストリに保存できます。これにより、画像が安全でオンラインで利用できるようになります。

Docker は、既製のコンポーネントを含む構成済みの公式イメージを提供します。これらのイメージを使用して、アプリケーションのコンテナーをすばやく構築できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です