swarm (クラスタ)の作成

チュートリアルのセットアップ ステップを終えたら、 sarm (訳者注:「群れ」の意味ですが、swarm mode における「クラスタ」を意味する概念)を作成する準備が整いました。ホストマシン上で Docker Engine デーモンが起動しているか確認してください。

  1. ターミナルを開き、マネージャ・ノードにしたいマシンに SSH で入ります。たとえば、このチュートリアルでは manager1 という名前のマシンを使います。Docker Machine を使っている場合は、以下のコマンドを使い、 SSH 経由で接続できます。

    $ docker-machine ssh manager1
    
  1. 新しい swarm を作成するために、次のコマンドを実行します。

    $ docker swarm init --advertise-addr <MANAGER-IP>
    

    注釈

    Docker Desktop for Mac や Docker Desktop for Windows を使っている場合は、単一ノード swarm をテストするために、引数を付けずに単純に docker swarm init を実行します。今回の例では --advertise-addr を指定する必要はありません。詳しく学ぶには、Swarm で Docker Desktop for Mac や Docker Desktop for Windows を使う をご覧ください。

    このチュートリアルでは、 manager1 マシン上で次の swarm 作成コマンドを実行します。

    $ docker swarm init --advertise-addr 192.168.99.100
    Swarm initialized: current node (dxn1zf6l61qsb1josjja83ngz) is now a manager.
    
    To add a worker to this swarm, run the following command:
    
        docker swarm join \
        --token SWMTKN-1-49nj1cmql0jkz5s954yi3oex3nedyz0fb0xx14ie39trti4wxv-8vxv8rssmk743ojnwacrr2e7c \
        192.168.99.100:2377
    
    To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
    

    --advertise-addr フラグは、 manager ノードで自身を 192.168.99.100 として公開する設定です。swarm における他のノードは、この IP アドレスを使い、manager に対して接続する必要があります。

    出力には、swarm に新しいノードを追加するコマンドも含みます。 --token フラグの値によって、ノードは manager あるいは worker として参加します。

  1. docker info を実行し、現在の swarm の状況を表示します。

    $ docker info
    
    Containers: 2
     Running: 0
     Paused: 0
     Stopped: 2
    ...省略...
    Swarm: active
     NodeID: dxn1zf6l61qsb1josjja83ngz
     IsManager: Yes
     Managers: 1
     Nodes: 1
     CACertHash: sha256:b7986d3baeff2f5664dfe350eec32e2383539ec1a802ba541c4eb829056b5f61
    ...省略...
    
  1. docker node ls コマンドを実行し、ノードに関する情報を表示します。

    $ docker node ls
    
    ID                           NAME      MEMBERSHIP  STATUS  AVAILABILITY  MANAGER STATUS  LEADER
    dxn1zf6l61qsb1josjja83ngz *  manager1  Accepted    Ready   Active        Reachable       Yes
    

    ノード ID の横にある * 印は、現在接続中のノードを表します。

    Docker Engine swarm モードは、ノードに対してマシンのホスト名を自動的に付けます。他の列については、以降のステップで扱います。

次は何をしますか?

チュートリアルの次のセクションで、クラスタに さらに2つのノードを追加 します。