Skip to content

Docker swarm modeを知る

   

複数の仮想サーバーでdocker-composeで起動したコンテナの管理をする方法を調べていて、swarm modeにたどり着いたので調べたことを残す。

  • コマンドでモード切替

    • 有効化:docker swarm init
    • 無効化:docker swarm leave --force
  • シングルノードでも試せる

    • シングルノードの場合は、init時の--advertise-addr指定は不要
  • Docker swarmとswarm modeは別

    • Docker 1.12からDocker本体にswarmが取り込まれて、swarm modeになった
    • 1.12以降でもswarmは使えるが、swarm modeの方が簡単に利用できる
  • 複数ノードで構成する場合は、コンテナイメージをレジストリに格納する必要がある

  • 複数ノードで構成する場合は、ノード間でいくつかのポートの通信を許可しておく必要がある

    • TCP port 2377 は、クラスタ管理通信のため
    • TCP と UDP の port 7946 は、ノード間の通信のため
    • UDP port 4789 はオーバレイ・ネットワーク・トラフィックのため
  • swarmにサービスをデプロイすると、タスクが作成される

    • AWSのECSに似た概念?
  • サービスのデプロイは、docker-compose up コマンドではなく、docker service createを使う

    • シングルノードの場合は、WARNINGは出るがdocker-composeも使える
  • swarmクラスタの可視化ができるportainerというOSSがある

参考リンク