クラウドネイティブ Docker デプロイメント Flask 実践

クラウドネイティブ Docker デプロイメント Flask 実践

1. Dockerの理解

1. Dockerの簡単な紹介

Docker はオープンソースのアプリケーション コンテナー エンジンであり、開発者はこれを使用してアプリケーションと依存パッケージをポータブル コンテナーにパッケージ化し、一般的な Linux または Windows オペレーティング システム マシンに公開できます。仮想化も実現できます。コンテナは完全にサンドボックス化されており、コンテナ間にインターフェースはありません。

2. Dockerはクライアントサーバーアーキテクチャを採用している

Docker クライアントは Docker デーモンと通信し、Docker コンテナの構築、実行、配布という面倒な作業を実行します。 Docker クライアントとデーモンは同じシステム上で実行することも、Docker クライアントをリモート Docker デーモンに接続することもできます。 Docker クライアントとデーモンは、REST API を使用して UNIX ソケットまたはネットワーク インターフェイスを介して通信します。もう 1 つの Docker クライアントは Docker Compose です。これを使用すると、一連のコンテナーで構成されたアプリケーションを操作できます。

2. DockerFileの説明

  • FROMコマンド
 FROM: イメージの構築に使用されたイメージ
  • MAINTAINERコマンド
 MAINTAINER: イメージ管理者の名前またはメールアドレス
  • RUNコマンド
 RUN: イメージをビルドするときに実行する命令
  • CMDコマンド
 CMD: コンテナ実行時に実行されるシェル環境
  • VOLUMEコマンド
 VOLUME: コンテナのマウントポイントを、ホストによって自動的に生成されたディレクトリまたは他のコンテナに指定します。
  • USER コマンド
 USER: RUN、CMD、 ENTRYPOINT コマンドの実行ユーザーを指定します。
  • WORKDIR コマンド
 WORKDIR: RUN、CMD、ENTRYPOINT、COPY  ADD作業ディレクトリを設定します
  • EXPOSEコマンド
 EXPOSE: コンテナのサービスポートを宣言します。
  • ENV コマンド
 ENV: コンテナ環境変数を設定する
  • ADD コマンド
 ADD: ファイルまたはディレクトリをコンテナにコピーします。 URL または圧縮パッケージの場合は、自動的にダウンロードまたは解凍されます。
  • コピーコマンド
 COPY: ADD と同様に、ファイルまたはディレクトリをコンテナーにコピーしますが、自動ダウンロードや解凍の機能はありません。
  • ENTRYPOINT コマンド
 ENTRYPOINT: コンテナの実行時に実行されるシェルコマンド

3. Python Flask フレームワークの Docker クイック デプロイ

1. 最小限のフラスコを作成する

①、app.pyファイル。

 #!/usr/bin/env python
輸入フラスコ
# アプリケーション作成します
APP = フラスコフラスコ( __name__ )
@ アプリルート( '/' )
定義インデックス():
「hello 51CTO」 を返します
__name__ == '__main__' の場合:
アプリ走る()

②、 requirements.txt ファイル。

このプロジェクトの Python 依存パッケージをエクスポートします。

 pip フリーズ> 要件.txt 

2. Flaskコードとrequirements.txtをサーバーにアップロードする

①.アップロードするファイルを準備します。

②. MobaXterm を使用してサーバーに接続します。

③.ファイルをドラッグアンドドロップしてサーバーにアップロードします。

3. Docker環境の準備

①、Dockerがpythonイメージをプルします。

 docker プルpython

②. Dockerfile ファイルを書き込みます。

 FROM python #ベースイメージ、python
MAINTAINER yukoyu #ミラー作者情報
WORKDIR / アプリ
#作業ディレクトリ、このディレクトリはイメージ内の作業ディレクトリに対応しており、パスに関連する以降のすべての操作は
#WORKDIRの相対パスを使用して指定します
コピー要件txt の要件TXT
# requirements.txt image / app / requirements.txt コピーします
pip install -r requirements .txt -i https://pypi.tuna.tsinghua.edu.cn/simple ​​ を実行します
#pipパッケージをインストールする
コピー。 。
#現在のファイル内のディレクトリを/ appディレクトリにコピーします
ENV FLASK_APP アプリ
#flask run コマンドが起動ファイルの場所を見つけられるように環境変数を設定します
CMD [ "flask""run""-h""0.0.0.0""-p""5000" ]
# 起動名flask run - h 0.0.0.0 - p 5000 を実行します。リスト内の各要素はスペースを表します。

③.ディレクトリ構造を準備します。

4. Dockerfileを使用してイメージを構築する

①.工事。

 docker build -t flasktest : 1.0

②.成功したかどうかを確認します。

③、flasktestイメージを実行します。

 docker run --name flasktest01 -p 5000 : 5000 flasktest : 1.0 を実行ます。 

4. テスト結果

正常に実行されました。

オープンソースの詳細については、以下をご覧ください。

51CTO オープンソース基本ソフトウェアコミュニティ

​​https://ost..com​​.

<<:  ガートナー: 中国におけるパブリック クラウド導入のベスト プラクティス

>>:  インフォア:業界を深く掘り下げ、顧客がより早く価値を実現できるよう支援

推薦する

エッジコンピューティング: ビジネスチャンスと成功のための技術的考慮事項

デジタルへの移行により、デバイス、センサー、電話、ネットワーク、相互接続されたインフラストラクチャが...

コメントを通じて独自のアプリの ASO 最適化に貢献するにはどうすればよいでしょうか?

ASO 最適化には、主にキーワード カバレッジやコメント最適化などの従来の手段が含まれます。これまで...

ウェブサイト広告の設定方法

インターネット上では、ウェブサイト広告、つまりウェブサイトを広告主として立ち上げることによって、数多...

#BlackFriday# tmhhost: すべてのリチャージに10%のリチャージバック、日本cn2\日本ソフトバンク\韓国CN2\香港cn2\米国3ネットワークcn2、今年最低価格

tmhhost は、ブラック フライデー ゴールデン ウィーク中にスーパー プロモーションを実施しま...

2021年春節紅包合戦を通して中国のAIインフラ構築を見る

2015年以来、紅包は毎年の春節の美しい一面となっています。アリババを代表として、テンセント、百度、...

マルチアクセス エッジ コンピューティング – パート 3: 近い将来に MEC を活用する 5 つの方法

上記を確認してください:マルチアクセス エッジ コンピューティング – パート 1: マルチアクセス...

教育インターネットのさまざまな形式を分析する: オンライン教育は信頼できるか?

オンライン教育は信頼できるのでしょうか?モバイルインターネットの急速な発展に伴い、伝統的な産業は再び...

24khost イースタープロモーション: 2G メモリ/160G ハードディスク/2T トラフィック/6.5 USD/月

2010 年に設立された 24khost は、豊富なリソース、特にハードディスクを備えた重要なローエ...

分散ストレージの技術開発動向

[[388597]]分散ストレージの技術開発動向1. 3部コピーのデメリットCeph や VSAN ...

2022年までに産業企業の90%がエッジコンピューティングを使用する

Frost & Sullivan の最近のレポートによると、エッジ コンピューティングは、レ...

IDC: クラウドとエッジ コンピューティングが「次の常態」の鍵

新型コロナウイルス感染症のパンデミックによってもたらされた新たな「ネクストノーマル」を企業が活用でき...

共同購入サイトは多数消滅、テイクアウトや予約サービスもまだ試験段階

ケータリング O2O 起業には現実的な対応が求められます。最近、私はチームと協力して長沙でオフライン...

Kubernetes の helm とは何ですか?使い方は?

Kubernetes (K8S) エコシステムにおいて、Helm は強力なプログラムの展開と管理のた...

オンラインで稼ぐ世界: インターネット収益の知られざる世界を発見する (パート 1)

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス私はインターネットという...