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 文字列の傍受と指定された文字列内のデータの取得

推薦する

CSSはスクロールを許可しながらスクロールバーを非表示にするためにオーバーフローを設定します

CSS は、スクロールを許可しながらスクロール バーを非表示にするために Overflow を設定し...

DockerでKafkaをデプロイする方法

目次1. Dockerをビルドする2. コンテナに入る3. 設定ファイルを変更する4. Kafkaを...

ページにスクロールバーが表示されたときに、スクロールバーがページ幅に影響しないようにする方法

本体の幅をウィンドウの幅に設定します(次のスクリプトで制御されます) $("body&qu...

CSS ピックアップ矢印、カタログ、アイコン実装コード

1. CSS その他のアイコンアイコンを作成するには 3 つの方法があります。写真css (小さな矢...

JavaScript における継承の 3 つの方法

継承する1. 継承とは何か継承: まず、継承とは関係、つまりクラス間の関係です。JS にはクラスはあ...

実務経験7年のフロントエンドスーパーバイザーによる経験共有

今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...

JS ES の新機能、変数分離割り当て

目次1. 配列の分離割り当て1.1 配列分離割り当てとは何ですか? 1.2 配列分離割り当てに失敗し...

Windows 10 インストール vmware14 チュートリアル図

ソフトウェアのダウンロードソフトウェアのダウンロード リンク: https://pan.baidu....

シンプルなスネークを実現するためのネイティブjsキャンバス

この記事では、参考までに、簡単なスネークゲームを実装するためのjsキャンバスの具体的なコードを共有し...

Docker のタイムゾーンの問題とデータ移行の問題

最新のソリューション: -v /usr/share/zoneinfo/Asia/Shanghai:/...

画像比較を実現するjQueryプラグイン

この記事の例では、画像比較を実現するためのjQueryプラグインの具体的なコードを参考までに共有して...

メニューのホバー効果を実現するCSS3

結果: html <nav id="nav-1"> <a cl...

フォームの送信イベントが応答しない

1. 問題の説明<br />JS を使用してフォームの送信メソッドを呼び出してフォームを...

Win10 に Linux ubuntu-18.04 デュアル システムをインストールする (インストール ガイド)

コンピューターに Linux Ubuntu システムをインストールしました。初めてインストールしまし...

CSSは2つの要素をブレンドする効果(スティッキー効果)を実現します。

数年前、Taobaoのモバイル版の左下隅に面白い丸いボタンがあったことを覚えています。それをクリック...