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 以降を使用していることを確認してください。次に、次の手順に従います。
- Docker ハブ Web サイトから Docker をダウンロードします。
- Docker.dmgをダブルクリックしてインストーラーを開きます。
- Dockerアイコンを Applications フォルダーにドラッグします。
- Docker を起動するには、Docker.appをダブルクリックします。
- ステータス バーの Docker のクジラのロゴは、Docker が実行中であることを示します。
Docker Mac のインストール手順に従って、コマンド ラインから macOS に Docker をインストールすることもできます。
Windows に Docker をインストールする
Windows OS に Docker デスクトップをインストールするには、次の手順に従います。
- Docker ハブ Web サイトから Docker をダウンロードします。
- Docker Desktop Installer.exeをダブルクリックしてインストーラーを実行します。
- インストール時に、構成ページで Hyper-V Windows 機能を有効にします。
- プロセスに従い、インストールが完了するまですべての権限を許可します。
- インストール後、[閉じる] をクリックしてプロセスを完了します。
- Docker を起動するには、デスクトップの検索結果で Docker デスクトップを検索して選択します。
または、 Docker Windows のインストール手順に従って、コマンド ラインを使用して Windows OS に 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"]
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 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 は、既製のコンポーネントを含む構成済みの公式イメージを提供します。これらのイメージを使用して、アプリケーションのコンテナーをすばやく構築できます。
コメントを残す