クラウドネイティブ 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​​.

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

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

推薦する

新しいサイトのランキング向上は、外部リンクプロモーションと組み合わせることで最大の効果が得られます。

まず、「速い」という言葉について説明させてください。そうでないと誤解してしまいます。ここで言う「速い...

自分自身と敵を知ることで、あらゆる戦いで勝利が保証されます。増え続けるクラウド コストをどうやって制御できるでしょうか?

現在、ますます多くの企業が IT インフラストラクチャを便利で柔軟なクラウド インフラストラクチャに...

マイクロソフトの李剛氏:企業のデジタル変革を全面的に推進

[51CTO.comからのオリジナル記事] 最近、「企業のデジタル変革の実現」をテーマにした第13回...

安価なクラスタ サーバー (アジア クラスタ、ヨーロッパ クラスタ、アメリカ クラスタ、32 個の C セグメントをサポート)

SEO サーバー、クラスター サーバー、およびマルチ IP サーバーは、Web サイトのプロモーショ...

パンくずとは何ですか? また、SEO にどのような影響を与えますか?

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っていますご存知のよ...

wholesaleinternet - 月額 19 ドルのサーバー、いつまで待つつもりですか?

WholesaleInternet は、カンザスシティのダウンタウンにあるインターネット サービス会...

Goで実装された分散トランザクションフレームワーク

[[439474]]この記事はWeChatの公開アカウント「RememberGo」から転載したもので...

国家発展改革委員会:新年と春節に大手電子商取引企業による偽のプロモーションを厳しく調査

12月25日(記者 江国成)国家発展改革委員会が25日発表した情報によると、2013年の元旦と春節期...

さようなら、カフカ!さようなら、RocketMQ!

Pulsar は、2016 年に Yahoo によってオープンソース化され、2018 年にトップレベ...

Hadoop 擬似分散セットアップ操作手順ガイド

[[207661]] 1. 準備/opt/ディレクトリにモジュールとソフトウェアのフォルダを作成しま...

Vultr - 2018 年 8 月の最新 $20/$50 割引コード

Vultr、2019年8月の最新割引コード2つ。まだVultrを使ったことがないなら、ぜひ無料で試し...

初心者としてクラウド コンピューティング技術を学ぶにはどうすればよいでしょうか?

2010 年は業界では「中国におけるクラウド コンピューティング元年」と呼ばれています。 2010年...

profitserver: 月額 5.76 ドル、シンガポール VPS、無制限帯域幅 VPS、カスタム ISO

profitserver のシンガポール VPS をご紹介します。KVM 仮想化、純粋な SSD、1...

3分レビュー! 2021年10月のクラウドコンピューティング分野の重要な動向の概要

2020年以降、クラウドコンピューティングがトレンドになりました。ますます多くの資本と企業がクラウド...