サービス:パート3を始めましょう
前提
-
ドッカーは、バージョン1.13以降をインストールします。
-
ドッカー作曲を取得します。Macのデスクトップ用ドッカーとWindowsでは、それがプリインストールされているので、あなたは良いツー行くことができます。Linuxシステムでは、あなたはそれを直接インストールする必要があります。以前のWindows 10のシステムでは、何のHyper-Vが存在しない、ドッカーツールボックスを使用してください。
-
方向のパート1を読みます。
-
第2部でコンテナを作成する方法を学びます。
-
確保することにより
friendlyhello
、レジストリにプッシュミラーイメージを作成するためにあなたの画像を公開します。ここでは、共有の画像を使用しています。 -
コンテナは鏡のように展開されていることを確認してください。このコマンドを実行して情報を入力し
username
、repo
そしてtag
:docker run -p 4000:80 username/repo:tag
その後、アクセスhttp://localhost:4000/
入門
第3部では、アプリケーションとロードバランシングを拡張します。サービス:この目的のために、我々は分散アプリケーションの階層の1つの上のレベルを上げる必要があります。
-
スタック
-
サービス(現在地)
-
コンテナ(パート2つのカバー)
サービスについて
分散アプリケーションと呼ばれるアプリケーションのさまざまな部分で「サービス」。あなたがビデオ共有サイトを想像した場合、それはおそらく、バックグラウンドでビデオトランスコーディングサービス、フロントエンドサービスをアップロードした後、アプリケーションデータ、ユーザーのコンテンツを格納するデータベース内のサービスを含んでいます。
サービスは本当にただ「コンテナの生産環境」です。その上、それは多くのコピーが必要な容量とサービスを提供するために順番に実行されている必要がありますどのようにどのポート、コンテナを使用する必要があり、そして - サービスのみミラーを実行しますが、それは実行をコーディングする方法を反映しました。ズームは、コンピューティングサービスのプロセスに多くのリソースを割り当てるなる、ソフトウェアのインスタンスのコンテナ数を実行するためのサービスを変更します。
幸いなことに、ドッカープラットフォームの定義、運用、拡張サービスの利用は非常に簡単です-ちょうど書き込み docker-compose.yml
ファイルを。
あなたの最初 docker-compose.yml
のファイル
docker-compose.yml
YAMLファイルには、生産にドッカーコンテナを操作する方法を定義するファイルです。
docker-compose.yml
このファイルを保存し docker-compose.yml
、必要かどうか、。ミラー部が第2のプッシュレジストリに作成されていることを確認し、そしてによってusername/repo:tag
この代替内容の鏡像を更新します .yml
。
バージョン:「3 」 のサービス: ウェブ: #は、ユーザー名置き換え / レポを:あなたの名前と画像の詳細とタグ 画像:ユーザー名 / レポ:タグの デプロイ: レプリカ:5つの リソース: 制限: CPUの:「0.1 」 メモリ:50Mの restart_policy: 条件:上 - 失敗 ポート: - " 4000:80 " ネットワーク: - webnet ネットワーク: webnet:
この docker-compose.yml
ファイルには、ドッカーは、次の操作を行うよう指示します。
-
我々は、レジストリから、ステップ2でアップロードされた画像を抽出します。
-
ミラーリングと呼ばれる5つのインスタンス
web
各時間インスタンスは、単一のCPUの10%までのサービス実行制限を(あってもよく、例えば、「1.5」は、メモリコア1と半分の各ことを示す)、及びRAM限界の50メガバイト。 -
コンテナが失敗した場合は、すぐにコンテナを再起動してください。
-
ホスト4000上のポートは、Webポート80にマッピングされています。
-
示された
web
ことにより、参照容器webnet
の負荷分散ネットワークは、ポート80を共有しました。(内部的には、コンテナ自体は一時的なポートでWebポート80に掲示されます。 -
デフォルトの設定を使用する(オーバレイネットワーク負荷分散)定義され
webnet
たネットワークを。
実行中の新しいロード・バランシング・アプリケーション
使用時には docker stack deploy
、コマンドの前に、我々は最初に実行します。
ドッキングウィンドウ群れのinit
注意:私たちは、コマンドのセクション4の意味を入力します。あなたが実行しない場合
docker swarm init
、あなたはそのエラーが表示されます「このノードが群れマネージャではありませんが 。」。
今度はそれを実行してみましょう。あなたは、アプリケーションの名前を指定する必要があります。ここでは、それが呼び出されますgetstartedlab
:
ドッキングウィンドウスタックは、-cドッキングウィンドウ-compose.yml getstartedlabを展開します
当社のサービスは、単一のホスト上で5つのコンテナインスタンスのミラーを展開するために、単一の実行スタック。さんがそれに見てみましょう。
サービスの私達のアプリケーションサービスIDを取得します。
ドッキングウィンドウサービスLS
検索 web
出力サービスを、プレアプリケーション名。この例のように、あなたは名前、同じ名前が付けられますならば getinitlab_web
。サービスIDとコピー、画像名、および開いているポートの数も記載されています。
また、あなたが実行することができ docker stack services
、その後、スタックの名前を。次のコマンド例では、表示することができますし、 getstartedlab
すべての関連するサービスがスタック:
ドッキングウィンドウスタックサービスgetstartedlab IDのNAME MODEレプリカ画像ポート bqpve1djnk0x getstartedlab_web、複製 5 / 5 ユーザ名/レポ:タグ*:4000 - > 80 / TCP
呼ばれる単一のコンテナサービスで実行されています任务
。タスクは、固有の識別番号があなたにまで取得する方法まで追加することができます与えられている docker-compose.yml
定義されてコピーするreplicas
回数を。タスクおよびサービスの一覧を表示します:
ドッキングウィンドウサービスのPS getstartedlab_web
あなただけのシステム上のすべてのコンテナをリストする場合スクリーニングサービスに障害が発生したものの、課題も、表示されます。
ドッキングウィンドウコンテナLS -q
あなたは継続的に実行することができますcurl -4 http://localhost:4000
数回、またはお使いのブラウザでURLにアクセスして、数回を更新します。
いずれかの方法で、コンテナIDは、プレゼンテーションをロードバランシングを変更して、各要求を、周期的に応答した5つのタスクの1つを選択します。コンテナIDは、上記のコマンド(あるdocker container ls -q
出力一致)。
すべてのタスクスタックを表示するには、実行することができ docker stack ps
、次の例のように、アプリケーション名が続きます:
ドッキングウィンドウスタックのPS getstartedlab ID NAMEイメージNODE望ましい状態CURRENT STATEエラーPORTS uwiaw67sc0eh getstartedlab_web。1つの ユーザー名/レポ:実行実行タグドッキングウィンドウ、デスクトップ9 分前 getstartedlab_web sk50xbhmcae7。2 ユーザ名/レポ:実行実行タグドッキングウィンドウ、デスクトップ9 分前 getstartedlab_web c4uuw5i6h02j。3 ユーザ名/レポ:実行中のタグドッカ-デスクトップランニング9前分 0dyb70ixu25s getstartedlab_web。4 ユーザー名/レポ:実行中のタグドッカ-デスクトップ実行中の9 分前 aocrb88ap8b0 getstartedlab_webを。5 ユーザ名/レポ:実行中のタグドッカ-デスクトップ実行中の9分前
Windowsの10を実行していますか?
Windowsの10 PowerShellは、すでにカーリー利用可能なはずですが、そうでなければ、あなたは、GitのBASHなどのLinux端末エミュレータを、つかむ、または非常に類似しているWindows用のwgetをダウンロードすることができます。
応答時間が遅くなりますか?
ネットワークの構成環境では、コンテナは、HTTP要求に応答するために30秒かかることがあります。これは、パフォーマンスドッカーやグループを示すものではありませんが、このチュートリアルで満たされていないRedisの依存関係で後述します。現在、訪問者はカウンタと同じ理由で動作しません。私たちは、データサービスを維持するために追加されていません。
スケーリングアプリケーション
あなたは変更することができ 、値を変更を保存し、再実行して アプリケーションを拡張するためのコマンドを:docker-compose.yml
replicas
docker stack deploy
ドッキングウィンドウスタックは、-cドッキングウィンドウ-compose.yml getstartedlabを展開します
ドッカープレース更新、最初のスタックが破れまたは任意のコンテナを終了することなく。
今、再実行して docker container ls -q
展開し、インスタンスの再構成を参照してください。拡大レプリカた場合は、より多くのコンテナを起動するために複数のタスクを開始します。
アプリケーションと出て群れの下で
使用し docker stack rm
ての下でアプリケーションを:
ドッキングウィンドウスタックRM getstartedlab
次の秋swarm
:
ドッキングウィンドウ群れ休暇--force
ドッカーが確立し、アプリケーションの使用が非常に簡単で展開します。あなたは、本番環境の大きなステップでコンテナを実行する方法を学びます。次は、ドッカーのコンピュータクラスタ上の真のグループを形成するために、このアプリケーションを実行する方法を学びます。
注:この使用ドッカーのカスタムアプリケーションなどのファイルを作曲し、ドッカークラウドを使用することができ、クラウドプロバイダにアップロードされ、あなたはまた、任意のハードウェアまたはEnterprise Editionドッカーは、選択したクラウド・プロバイダーの使用にアップロードすることができます。
レビューやチートシート(オプション)
一言で言えば、ものの種類は docker run
非常にシンプルですが、本当にコンテナの生産は、サービスそれとして実行されています。サービス動作が作曲コンテナファイルに体系化され、ファイルは、上限を拡張し、私たちのアプリケーションを再デプロイするために使用することができます。
この段階でのコマンドのいくつかが検討されます。
ドッキングウィンドウスタックLS #リストスタックやアプリ ドッキングウィンドウスタック展開 -c <composefile> <appnameの>#ファイル名を指定して実行に指定されたメール作成ファイル ドッキングウィンドウサービスLS アプリケーションに関連付けられたサービス実行している#リスト ドッキングウィンドウサービスPS <サービス> アプリケーションに関連付けられている#リストのタスク ドッキングウィンドウを検査 <タスクまたはコンテナ> #点検タスクまたはコンテナ ドッキングウィンドウコンテナLS - Q#リストのコンテナIDを ドッキングウィンドウスタックのrm <APPNAME> #アプリケーション取り壊す ドッカー群発休暇マネージャからシングルノード群れをダウン#--forceを