おそらく、いくつかの定義から始めると役立つでしょう。
- docker-compose:関連するコンテナーのグループを構成および管理するために使用されるコマンド。これは、docker cliで使用されるのと同じAPIのフロントエンドであるため、のようなコマンドを使用してその動作を再現できます
docker run
。
- docker-compose.yml:コンテナのグループの定義ファイル。docker-composeで使用され、現在はswarmモードでも使用されています。
- スウォームモード:Dockerエンジンのグループを単一のエンティティとして管理し、オーケストレーションを提供するために使用されます(現在の状態とターゲットの状態の違いを常に修正しようとします)。
- サービス:スウォーム内の同じイメージと構成の1つ以上のコンテナー、複数のコンテナーがスケーラビリティーを提供します。
- スタック:スウォーム内の1つ以上のサービス。これらは、DABまたはdocker-compose.ymlファイルを使用して定義できます。
- ブリッジネットワーク:複数のコンテナが相互に通信できる単一のDockerエンジンによって管理されるネットワーク。エンジンによって複数のネットワークが管理されている場合があり、コンテナは0個以上のネットワークに接続できます。
- オーバーレイネットワーク:ブリッジネットワークに似ていますが、複数のDockerエンジンにまたがっています。これらは、状態を維持するためにキー/値ストアを必要とします。スウォームモードはこれを提供しますが、スウォームモードが無効になっている場合は、etcd、consul、またはzookeeperを使用することもできます。
- リンク:ブリッジネットワークよりも前のコンテナを接続する方法。その使用は推奨されなくなりました。
- クラシックスウォーム:コンテナとして実行される統合スウォームモードの前身であり、複数のエンジンを1つとして表示できますが、オーケストレーションを提供したり、独自のk / vストアを含めたりすることはありません。
質問に答えるには:
docker-swarmはdocker-composeとoverlayネットワークに成功しましたか?コンテナを接続するための新しい(推奨される)方法ですか?
それとも、docker-composeはまだdockerファミリー全体の不可欠な部分であり、それを使用してコンテナーを接続して共同作業を行うことが期待され、推奨されています。もしそうなら、docker-composeは群れの異なるノードにまたがるコンテナで動作しますか?
それらは異なる機能を提供し、両方とも目的を果たし続けます。docker-composeはswarmモード内でコンテナーを開始できませんが、docker-compose.ymlファイルの新しいバージョン(バージョン3)を使用して、docker-compose自体を使用せずにswarmモードで直接スタックを定義できます。docker-composeは、単一のdockerエンジンで、または従来のswarmを使用して、swarmモード以外のコンテナーを管理するために必要です。
それとも、オーバーレイネットワークは群れの異なるホスト間でコンテナを接続するためのものであり、docker-composeは内部リンクを作成するためのものですか?
さらに、dockerのドキュメントに、-linksは推奨されなくなり、まもなく廃止されることが記載されていることもわかりました。
docker-composeはバージョン2以降のymlファイルで、デフォルトで複数のコンテナーをプロジェクトごとに新しいブリッジネットワークに接続します(プロジェクトのデフォルトはディレクトリ名です)。従来の群れでは、デフォルトで外部k / vストアを使用するオーバーレイネットワークになります。そして、スウォームモードスタックでは、これはオーバーレイネットワークになります。
Dockerネットワークを使用することは、コンテナーを相互に通信させるための推奨される方法です。Docker環境の残りの部分から分離したいコンテナーのグループごとにネットワークが必要です。docker-composeはこのネットワークの作成を自動化しますが、コマンドラインからdocker networks create
。を使用して行うこともできます。
リンクは、DNS検出機能が組み込まれたDockerネットワークに大幅に置き換えられました。docker-compose.ymlからリンクを削除する場合、depends_on
コンテナーの起動順序を強制するために、リンクをセクションに置き換える必要がある場合があります。そうでなければ、リンクが理にかなっているシナリオはほとんどなく、私が見たすべての使用法は、古いドキュメントをフォローしている誰かからのものです。