https://www.cnblogs.com/bigberg/p/8867326.html
I.はじめに
ドッキングウィンドウを使用すると、同じ時間管理では、より多くのドッキングウィンドウコンテナの配置が一緒でなければなりません作ることができ、スケジューリングツールドッキングウィンドウ-コンを持っていました。また、スウォームクラスタでは、関連するサービスのオーケストレーション管理のセットをスタックドッキングウィンドウを使用することができます。
ドッカースタックはまた、YAMLファイルで、ドッキングウィンドウ-compose.ymlファイルと同様の命令は基本的に同じです。しかし、それは、ビルド、リンクやnetwork_modeをサポートしていない構成と比較。ドッカースタックは、新たな命令を展開しています。
注意:スタックは、コマンドをサポートしていません。
二、Deploy
展開は、サービスの群れランタイムの構成や展開を指定するために使用してのみ展開群れクラスタ使用のドッキングウィンドウスタックのデプロイ時に有効になります。あなたがドッキングウィンドウ・作曲アップまたはドッキングウィンドウ・コン実行を使用する場合は、このオプションは無視されます。オプションを展開するには、バージョン3または3+へのバージョンのファイル構成。
バージョン:3 '' サービス: Redisの: 画像:Redisの:高山 デプロイ: 複製:6 update_config: 並列:2 遅延:10S restart_policy: 条件:オン故障
(1)ENDPOINT_MODE
サービス発見モードの群れを指定します。
- endpoint_mode:VIP - クライアントは、「フロントエンド」クラスタサービスに達するとドッカー群れクラスタサービス用には、仮想IP(VIP)が割り当てられています。ルート要求やサービスへのドッキングウィンドウは、クライアントとの作業ノード間で利用可能です。クライアントがIPサービスまたはこれらのノード/ポートに関与しているどのように多くのノードを知りません。(これがデフォルトのモードです)
- endpoint_mode:dnsrr -
DNSのポーリング(DNSRR)サービス発見は、単一の仮想IPを使用していません。DNSクエリのサービス名は、IPアドレスのリストを返し、クライアントはそれらの1つに直接接続されるようにドッカーは、サービスのDNSエントリを設定します。あなたがあなた自身のロードバランサ、または混合のWindowsとLinuxのアプリケーションを使用する場合は、DNSのポーリング機能は非常に便利です。
注:バージョン3.3+
バージョン"3.3" サービス: ワードプレス: イメージ:ワードプレス ポート: - 8080:80の ネットワーク: -オーバーレイ 配布: モード:複製された 複製:2 endpoint_mode:VIPの MySQLの: イメージ:MySQLの ボリューム: - DB-データ:の/ var / libに/ MySQL /データ ネットワーク: -オーバーレイ 配布: モード:複製された 複製:2 endpoint_mode:dnsrrの ボリューム: DB-データ: ネットワーク: オーバーレイ:
(2)LABELS
ラベル指定されたサービス。任意のコンテナサービスに設定せずにのみサービスの設定上のラベル、
バージョン:「3」 のサービス: ウェブ: 画像:ウェブ デプロイ: ラベル: com.example.description:「このラベルは、Webサービス上に表示されます」
ラベルキーの配置を使用したことに加えて、提供された容器上のラベルを変更するには
バージョン:「3」 のサービス: ウェブ: 画像:ウェブ ラベル: com.example.description:「このラベルは、Webサービスのためのすべてのコンテナに表示されます」
(3)MODE
グローバル(唯一つの容器各クラスタノード)またはコピー(数指定されたコンテナ)。デフォルト値はコピーです。
バージョン: '3' のサービス: 労働者: イメージ:dockersamples / examplevotingapp_workerの 配備: モード:グローバル
(4)PLACEMENT
制約や環境設定を指定します
バージョン: '3' のサービス: デシベル: 画像:Postgresは 展開: 配置: 制約: - node.role ==マネージャ - engine.labels.operatingsystem == Ubuntuの14.04 好み: -スプレッド:node.labels.zone
(5)複製
サービスは、コピーモード(デフォルトモード)の場合は、サービスが実行されているコンテナの数を指定することができます。
バージョン: '3' のサービス: 労働者: イメージ:dockersamples / examplevotingapp_workerの ネットワーク: -フロントエンド -バックエンドの 配備: モード:複製された レプリカ:6
(6)RESOURCES
リソースの制約の設定
注意:これは、ファイル作曲3(cpu_shares、cpu_quota、cpusetの、以前のバージョンの置き換え mem_limit、memswap_limit、mem_swappiness) など3.xのに2.xののアップグレード版として、古いリソース制約オプションの非クラスタモードでの
次の例では、Redisのは、利用可能な処理時間(CPU)のメモリ50M及び0.50(50%)を超えていないサービスの使用を制限し、メモリ20M及び0.25 CPU時間(常に使用可能)を有しています。
バージョン: '3' のサービス: Redisの: 画像:Redisの:高山の デプロイ: リソース: 制限: CPUの: '0.50' メモリ:50Mの 予約: CPUの: '0.25' メモリ:20M
(7)RESTART_POLICY
コンテナコンテナ出口を復活させるかどうか、どのように設定します。置換再開指示。
- 条件:なし、オン故障し、任意の(任意のデフォルト)
- 遅延:再起動の試行間で待機する時間(デフォルト0)
- max_attempts:再起動しようと(それが成功するまで、デフォルトは、再起動されています)
- ウィンドウ:成功した再起動を待つようにする前にウィンドウを使用すると、必ず時間です
バージョン: "3" のサービス: Redisの: 画像:Redisの:高山 デプロイ: restart_policy: 条件:障害時の 遅延:5Sの max_attempts:3 ウィンドウ:120S
(8)UPDATE_CONFIG
サービスのアップグレードを構成する方法
- 並列処理:同時にアップグレードでコンテナの数
- 遅延:インターバルコンテナをアップグレード
- failure_action:アクションをアップグレードします(デフォルトのポーズをロールバックし、一時停止し、続けています。)失敗した後。
- モニター:更新時間が本当に成功した完了後(NS |私たち| MS | S | M | H)。(デフォルト0)
- max_failure_ratio:アップデートの失敗率の間に許可されます
- オーダー:更新中の操作の順序。または最初のスタート(タスクを停止するために、新しいタスクを開始する前に、古い)優先順位を停止します(デフォルトのストップ優先)注(最初に新しいタスクを開始し、タスクが短いオーバーラップを実行している):のみV3.4をサポートし、後で。
バージョン: '3.4' のサービス: 投票: 画像:dockersamples / examplevotingapp_vote:前 depends_on: - Redisのは 展開: レプリカ:2 update_config: 並列処理:2 ディレイ:10秒 オーダー:停止し、最初
(9)depends_on
これは、サービス間の依存関係を表し
バージョン: '3' のサービス: ウェブ: ビルド:。 depends_on: -デシベル - Redisの Redisの: 画像:Redisのを デシベル: 画像:postgresの
(10)DNS
カスタムDNSサーバ。これは、単一の値またはリストかもしれません。
DNS:8.8.8.8 DNS: - 8.8.8.8 - 9.9.9.9
(11)dns_search
dns_search:example.com dns_search: - dc1.example.com - dc2.example.com
(12)環境
環境変数を追加します。あなたは配列や辞書を使用することができます。任意のブールは、真/偽、はい/いいえ、それらは引用符で囲まれていることを確認する必要がTrueまたはFalseに変換YMLパーサではありません。
環境: RACK_ENV:開発 SHOW:' 本当' SESSION_SECRET: 環境: - RACK_ENV = 開発 - SHOW = 真 - SESSION_SECRET
(13)露出
ホスト上のポートを明らかにすることなくオープンポートコンテナ、彼らは唯一の関連するサービスを取得することができます。あなただけの内部ポートを指定することができます。
公開 :- "3000" - "8000"