Flask アプリケーションの Docker デプロイ実装手順

Flask アプリケーションの Docker デプロイ実装手順

1. 目的

Flask アプリケーションをローカルで作成し、Docker でパッケージ化し、独自のサーバーにアップロードして、デプロイを完了します。

フローチャート:

2. 実験環境

ローカル: Windows 10 1909

サーバー: Alibaba Cloud Centos システム

3. 必要なソフトウェア

1.Dockerデスクトップ

2. ピチャーム 2020.3.3

4. 手順

1. Flaskアプリケーションをローカルで完了する

(1) PyCharmで新しいFlaskアプリケーションdocker_flaskを作成する

(2)gunicornとgeventパッケージをインストールする

(3)新しいgunicorn.config.pyファイルを作成し、次の内容を入力します。

workers = 5 # リクエストを処理するために同時に開かれるプロセスの数を定義し、ウェブサイトのトラフィックに応じて適切に調整します。worker_class = "gevent" # gevent ライブラリを使用して、リクエストの非同期処理をサポートし、スループットを向上させます。bind = "0.0.0.0:8080" # ここで 8080 は自由に調整できます。

(4)新しいrequirements.txtファイルを作成し、以下の内容を記入する

フラスコ
ガンコーン
ゲヴェント

(5)Dockerfileファイルを作成し、以下の内容を記入する

Python:3.7 から
ワークディレクトリ /usr/src/app
 
requirements.txt をコピーします。/
pip install -r requirements.txt -iを実行します。 
 
コピー 。 。
 
CMD ["gunicorn", "app:app", "-c", "./gunicorn.conf.py"] #最初のアプリはPythonによって起動されたファイル名(app.py)です。2番目はFlaskプロジェクトで事前に起動されたアプリケーション名です。

(6)プロジェクト構造

2. Dockerイメージを構築する

1. このプロジェクトのディレクトリに入る

2. イメージをビルドし、次のコマンドを入力します。

ビルドは -t 'docker_flask' です。

その後、6 つのステップが実行されます。心配する必要はなく、結果を見るだけです。

それをチェックしてください

これで、自作イメージの準備ができました。ローカルで実行して実験することができます。

3. 画像をAlibaba Cloud Warehouseにアップロードする

(1)Alibaba Cloud上に独自のDockerリポジトリを作成します。

(2)画像をアップロードする

1. Alibaba Cloud Docker Registry にログインし、ユーザー名を自分のユーザー名に変更することを忘れないでください。

docker login --username=Alibaba Cloud ユーザー名 registry.cn-hangzhou.aliyuncs.com

ログインパスワードはAlibaba Cloudのログインパスワードです

2. 次の2行のコマンドを入力して、イメージをレジストリにプッシュします。

docker タグ [イメージ ID] registry.cn-hangzhou.aliyuncs.com/namespace/warehouse name:[イメージ バージョン番号]
docker push registry.cn-hangzhou.aliyuncs.com/namespace/warehouse name:[イメージバージョン番号]

それなら心配せずに、実行を完了させましょう。

以前ここにアップロードしました。

4. このイメージをサーバーにプルして実行します(もちろん、最初にサーバーにDockerがインストールされている必要があります)

docker pull registry.cn-hangzhou.aliyuncs.com/namespace/warehouse name:[イメージのバージョン番号]

ssh 経由でサーバーにログインし、上記のコマンドを入力して、プルダウンされるかどうかを確認します。

4. 実行して動作するか確認する

ここではdockerのポート8080をサーバーのポート28080にマッピングします

OK、サーバーの IP: 28080 を入力して、Hello World が表示されるかどうかを確認します。(ポートを開くことを忘れないでください)

Flask アプリケーションの Docker デプロイメントの実装手順に関するこの記事はこれで終わりです。Flask アプリケーションの Docker デプロイメントに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Flask および Django フレームワークのカスタム モデル クラスのテーブル名と親クラスに関連する問題の分析
  • Flaskアプリケーションをサーバーにデプロイする方法
  • uWSGI と Nginx を使用して Flask プロジェクトをデプロイする方法の例
  • Docker を使用して Nginx+Flask+Mongo アプリケーションをデプロイする
  • CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)
  • Flask フレームワーク構成依存パッケージ情報に基づく Python プロジェクトの移行と展開
  • CentOS に Flask プロジェクトをデプロイする方法
  • CentOS 7.0 は Nginx を使用して Flask アプリケーションをデプロイするチュートリアル
  • Alibaba Cloud での Ubuntu 1.4 Flask + WSGI + Nginx の展開の詳細説明
  • flaskblogアプリケーションをDigitalOceanサーバーにデプロイする
  • Mac OS に Nginx、FastCGI、Flask フレームワークを導入するチュートリアル
  • Docker に Python の Flask フレームワークをデプロイするチュートリアル
  • Flask を使用してモデルをサービスとしてデプロイする方法

<<:  Vue スクロールダウンしてさらにデータを読み込む スクロールケースの詳細な説明

>>:  Mysql 文字列の傍受と指定された文字列内のデータの取得

推薦する

WindowsにJDK8をインストールする方法

1. ダウンロード: http://www.oracle.com/technetwork/java/...

CSS3アニメーションを使用して、小さい円から大きい円に拡大し、外側に広がる効果を実現する例

序文この記事では、CSS3アニメーションを使用して、円が小さいものから大きく拡大し、外側に広がる効果...

HTML スペースコードの簡単な分析

HTML についてどれくらい知っていますか? 現在、基本的な HTML コードを学習している場合は、...

HTML で複数のフォームのテキスト ボックスを揃える方法

フォームのコードは図の通りです。スタイルシートがまだ追加されていないため、フォームが整列されておらず...

MySQL ストアド プロシージャで月ごとにテーブルを作成する方法

詳細には立ち入らずに、コードに直接進みましょう。一緒にコミュニケーションを取り、学びましょう。月ごと...

カレンダー効果を実現するための Bootstrap+JQuery

この記事では、カレンダー効果を実現するためのBootstrap+Jqueryの具体的なコードを参考ま...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

jQueryはhide()とtoggle()関数を使用してカメラブランド表示の非表示機能を実現します。

最近、jQuery を学習しているときに、show()、hide()、toggle() 関数に出会い...

Unicode の数学記号の概要

数学、物理学、および一部の科学技術分野で使用される特殊記号は多数あります。Unicode コードには...

Linux サーバーの状態を監視する方法

私たち、特に Linux エンジニアは毎日 Linux サーバーを扱っています。サーバーのセキュリテ...

すべてのブラウザに対応したデータURIとMHTMLの完全なソリューション

データURI Data URI は、小さなファイルをドキュメントに直接埋め込むために RFC 239...

Reactにおけるコンポーネント通信の詳細な説明

目次親コンポーネントは子コンポーネントと通信します子コンポーネントは親コンポーネントと通信しますコン...

Vueフィルターの使い方

目次概要フィルターの定義フィルターの使用カスタムグローバルフィルターローカルフィルター予防例1(ロー...

チャットバブル効果を実現するCSS

1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...

MySQL準備原理の詳細な説明

準備のメリットPrepare SQL が生成される理由。まず、MySQL サーバー上で SQL を実...