Webエンジニアのメモ帳

技術的な話を中心に書いています。

Docker Swarmについて

Docker Swarmとは、複数のコンテナを管理するためのツールのことです。

いわゆるコンテナオーケストレーションツールで、Kubernetesなどが主流なようですが、Docker SwarmはDockerの標準機能で使えるので手頃というメリットがあります。

簡単に図にすると以下のような構成になります。 f:id:iberia9lavapies:20200814175459p:plain

まず、コンテナはサーバーの上で動いていますが、このサーバーのことをworkerやnodeといいます。workerの集まりをクラスタと言います。1台だけmasterというworkerが存在し、クラスタはこのmasterから操作します。

serviceをデプロイすると、指定した数だけコンテナをworkerにデプロイしてくれます。デプロイされるworkerは自動で決まります。

serviceは同じ種類のコンテナをデプロイするだけですが、例えば図のようにコンテナAを3台デプロイするserviceと、コンテナBを3台デプロイするserviceを同時にデプロイしたい場合を考えます。

その際にstackというものが使用できます。stackは複数のserviceをまとめてデプロイするために使えます。