より回復力、柔軟性、コスト効率の高い Web アプリの導入と実行を実現するため、アプリのコンテナ化は世界中で最も人気のあるアプローチの 1 つです。この記事では、Docker を利用して Python Flask Web アプリをイメージに変換し、Docker ハブにプッシュする方法を説明します。この記事を終えると、クラウドとの接続に使用されるライブ イメージを Docker ハブにデプロイする方法を学ぶことができます。
目次: Python Web アプリをイメージに変換し、Docker を使用してライブをプッシュする
- ドッカーとは
- 資格情報を作成して Docker アプリをダウンロードする (Macbook バージョン)
- Flask アプリのドキュメント
- Dockerfile ドキュメント
- 新しいイメージタグをローカルで構築する
- 新しいイメージを Docker Hub にプッシュします
- Docker を使用して Python Web アプリを画像に変換し、ライブにプッシュする完全なPython スクリプト
- よくある質問
ドッカーとは
Docker は、開発者がコンテナ内でのアプリケーションのデプロイと実行を自動化できるオープンソース プラットフォームです。コンテナーは、アプリケーションをライブラリや構成などの依存関係とともにパッケージ化する、軽量でポータブルな分離された環境であり、さまざまなコンピューティング環境間で一貫性と信頼性の高い実行を可能にします。
Docker に関連する重要な概念をいくつか示します。
- コンテナ化: Docker は、コンテナの作成と実行を含むコンテナ化テクノロジを利用します。コンテナーは分離された再現可能な環境を提供し、アプリケーションがさまざまなシステム間で一貫して実行できるようにします。
- Docker イメージ: イメージは、コード、ランタイム、ライブラリ、依存関係など、アプリケーションの実行に必要なすべてが含まれた軽量のスタンドアロンの実行可能パッケージです。イメージはコンテナの構成要素として機能します。
- Docker コンテナ: コンテナはイメージのインスタンスです。これは、ホスト システム上で別のプロセスとして実行され、他のコンテナーや基盤となるインフラストラクチャから分離されます。コンテナーはポータブルであり、Docker がインストールされている異なるシステム間で簡単に移動できます。
- Dockerfile: Dockerfile は、Docker イメージを構築するための手順が含まれるテキスト ファイルです。アプリケーション環境のセットアップに必要な基本イメージ、構成、依存関係、およびコマンドを指定します。
- Docker レジストリ: Docker レジストリは、Docker イメージを保存するリポジトリです。最も一般的に使用されるレジストリは Docker Hub です。これは、膨大な数の事前構築済みイメージをホストするパブリック レジストリです。さらに、プライベート レジストリを設定して、組織内で独自の Docker イメージを保存および共有することができます。
- Docker Compose: Docker Compose は、マルチコンテナー アプリケーションを定義および管理するためのツールです。 YAML ファイルを使用して複雑なアプリケーション環境を記述し、それらを単一のユニットとしてデプロイおよび管理できます。
- オーケス. トレーション: Docker Swarm と Kubernetes は、複数のホストまたはクラスターにわたるコンテナー化されたアプリケーションの管理とスケーリングを支援するオーケストレーション プラットフォームです。これらは、コンテナーの自動デプロイメント、スケーリング、負荷分散、および自己修復のための機能を提供します。
Docker は、アプリケーションのパッケージ化、デプロイメント、スケーリングを簡素化できるため、人気が高まっています。これにより、一貫性のある効率的な開発ワークフローが促進され、チームが共同で作業し、異なる環境間でアプリケーションを展開することが容易になります。
認証情報を作成して Docker アプリをダウンロードする
Docker は、公開されていない 1 つのプライベート リポジトリを含む無料枠を提供します。新しいアカウントを作成したら、Docker アプリをダウンロードしてローカル デバイスにインストールする必要があります。 Windows版、Linux版、OS版もあり
Flask アプリのドキュメント
まず最初に、Flask フレームワーク構造に基づいて Flask アプリのドキュメントの完全なセットを準備する必要があります。確認しなければならない主な点の 1 つは、app.py 内のポートとホストの値です。これらのパラメータを Flask メイン アプリ スクリプトに必ず追加してください。
if __name__ == "__main__" :app . run ( debug = True , host = "0.0.0.0" , port = 8000 )
Dockerfile ドキュメント
required.txt と同じフロアにある Flask アプリのルート レベルで、Dockerfile を追加する必要があります。このファイルでは、主に、Docker イメージ用のいくつかの重要なコンポーネントをセットアップおよび構成します。
- 言語バージョン
- ディレクトリパス
- 依存関係をコピーする
- 依存関係の実行とインストール
- Flask アプリのドキュメントをコピーして所定の場所に配置します
- コマンドと実行
以下にサンプルを示します。
FROM python : 3.9.6WORKDIR /python-flaskdemoCOPY requirements.txt .RUN pip install -r requirements.txtCOPY ./democn ./democnCMD [ "python" , "./democn/app.py" ]
新しい Docker イメージ タグをローカルでコマンドして構築する
フォルダー内のすべてのドキュメントの準備ができたら、フォルダーを cd し、次のコマンドでドキュメントを使用してイメージをビルドできます。
docker build -t flaskdemo .
ここの flaskdemo の場合、ローカルのイメージ タグ名です。好きな名前を付けることができます。イメージ名は、正常にビルドされた後、Docker Desktop のローカル インターフェイスに表示されます。
イメージのビルドが完了したら、ローカルで実行して、Web アプリが期待どおりに動作するかどうかを確認できます。このプロセスは、ローカルで実行される Flask アプリに似ています。
docker run -p 8000:8000 flaskdemo
ロ. ーカルの Docker イメージ タグを Docker Hub にプッシュする
次に、準備ができた Web アプリのイメージを Docker Hub にプッシュします。基本的には、それを開始するためのプロセスです。ターミナルにはいくつかの手順があります。
ステップ 1: docker ログイン
このコマンドを使用して、Docker デスクトップが既に Docker ハブに接続されているかどうかを確認します。ハブに接続されていることを確認してください。そうでない場合は、前に作成した資格情報を使用して最初にログインする必要があります。
ステップ 2: Docker イメージ
このコマンドを入力して、ライブにプッシュするイメージタグを検索します。最初にコピーして置いておくと、すぐに使用できるようになります。
ステップ 3: docker タグを付けて既存のイメージを Docker Hub にプッシュする
このコマンドに、先ほどコピーしたタグ ID、Docker Hub プロジェクトのパス、および Docker Hub に表示される新しいイメージ名を入力します。 Docker Desktop はレンダリングされた構成とドキュメントを新しいイメージにプッシュするため、イメージ名はローカルのものとは異なる場合があります。
docker tag tagID dockerHubname/projectname:newimagename
Docker を使用して Python Web アプリを画像に変換し、ライブにプッシュする完全な Python スクリプト
第 81 章 – Python Web アプリをイメージに変換し、Docker を使用してライブにプッシュすることに興味がある場合は、 「第 81 章 + Python Web アプリ用の完全な Docker イメージ変換スクリプト」というメッセージを追加してニュースレターを購読してください。 。最新のアプリ スクリプトが公開されたら、スクリプトを送信します。
第 81 章 – Python Web アプリをイメージに変換し、Docker を使用してライブにプッシュする を楽しんで読んでいただければ幸いです。もしそうなら、以下にリストされているいずれかの方法で私たちをサポートしてください。それは常に私たちのチャンネルに役立ちます。
- PayPal ( paypal.me/Easy2digital ) を通じて私たちのチャンネルをサポートし、寄付してください。
- 私のチャンネルを購読し、 Easy2Digital Youtube チャンネルの通知ベルをオンにしてください。
- Easy2Digital Facebook ページをフォローして「いいね!」してください
- ハッシュタグ #easy2digital を付けて記事をソーシャル ネットワークで共有してください
- Easy2Digital の最新記事、ビデオ、割引コードを受け取るには、毎週のニュースレターに登録してください。
- Patreon を通じて月額メンバーシップに登録すると、限定特典をお楽しみいただけます ( www.patreon. .com/louisludigital )