2017-03-29 10 views
25

Docker Composeを使用して、複数のホスト間で複数のコンテナにアプリケーションを展開する方法について学習しています。スタックファイルとComposeファイルの2つの設定ファイルがあります。 Cloud stack file YAML referenceからスタックファイルとComposeファイルの違いは何ですか?

、それはスタックファイルがdocker-compose.ymlファイルに少数の拡張子を持つ類似した1つ以上のサービスを定義するYAML形式のファイルです述べています。

そしてthis postから、それはスタックはドッキングウィンドウ-COMPOSEはコンテナを定義している間、彼らはサービスを定義する以外、作曲ドッキングウィンドウと非常によく似ていると述べています。

これらは非常によく似ているので、いつスタックファイルを使用するのか、そしていつComposeファイルを使用するのでしょうか?

+0

良い質問を見つけることができます。私はドッカーがまだ作成しているときにドッカースタックが必要な理由を尋ねたいと思います。 2番目のリンクでは、ドッキング・スタックがドッキング・エンジンのサービスであることを示しています。では、ドッカーの作曲をアップグレードして、それをサービスにすることができないのはなぜですか? – lonelyloner

+0

@lonelyloner素晴らしい質問ですが、ドッカーの作成は独自のツールであり、ドッカーに統合されていないためです。 Linuxでは、別途インストールする必要がありました.WindowsではDockerと一緒だと思います。うまくいけば、将来、ドッカーはそれらをマージし、スタックファイルだけが存在するでしょう。 –

答えて

25

概念的には、両方のファイルが同じ目的、つまり、ドッキングエンジン上のコンテナの配置と構成に役立ちます。

Docker-composeツールが最初に作成され、その目的は1つのドッカーエンジンで「マルチコンテナDockerアプリケーションの定義と実行」です。その上で、あなたのコンテナ、ネットワーク、ボリュームを更新し、/

あなたが作成する

docker-compose up 

使用(docker compose overviewを参照してください)。

ドッカースタックがドッカー群発(ドッカーのオーケストレーションおよびスケジューリングツール)で使用され、従って、それは単一ドッカーエンジンに必要とされていない追加の構成パラメータ(すなわち複製、配布、ロール)を有する

スタックファイルは

docker stack 

コマンドによって解釈されます。このコマンドは、docker swarm managerからのみ呼び出すことができます。

docker-compose.ymlをdocker-cloud.ymlに変換して戻すことができます。ただし、あなたの質問に記載されているように、あなたは違いに注意を払う必要があります。また、ドッカー作成用に異なるバージョンがあることに注意する必要があります。現在、最新版はバージョン3(https://docs.docker.com/compose/compose-file/

編集です:面白いブログ、違いを理解するのに役立つかもしれない、ここhttps://blog.nimbleci.com/2016/09/14/docker-stacks-and-why-we-need-them/

+0

ええ、Composeファイルには、[展開](https://docs.docker.com/compose/compose-file/#deploy)などのswarm関連のプロパティの記述があるため、混乱しています'docker compose'を使うと' 'docker stack deploy'だけ有効です。私は、すべての意図と目的のために、3 +バージョンの作曲について、彼らは同じであると思いますか? – dayuloli

+0

バージョン3は2とは異なります。特にボリュームの宣言方法。他にも変更があります。バージョン3の作成は変更なしでスウォームを処理できるはずですが、実際には、コンテナにボリュームがあり、再デプロイ時にデータが失われないような場合には、スウォーム設定を追加することをお勧めします。 –

+1

スタックの代わりにコンポを使用する点はありますか? – sudo

関連する問題