Docker Swarm サービスの作成
このステップでは、Docker Swarm サービスを作成する方法を学びます。Docker Swarm サービスは、Swarm クラスタ上で実行されるタスクのセットです。各タスクはコンテナのインスタンスです。サービスは Docker Swarm の中心的な概念であり、コンテナイメージのレプリカをいくつ実行するか、およびそれらをどのように更新するかを定義できます。
サービスを作成する前に、Docker Swarm を初期化する必要があります。単一の仮想マシン (VM) 上で実行しているため、シングルノードの Swarm を初期化します。
まず、Swarm を初期化しましょう。
docker swarm init --advertise-addr 127.0.0.1
Swarm が初期化され、現在のノードがマネージャになったことを示す出力が表示されるはずです。
次に、nginx
イメージを使用してサービスを作成しましょう。サービスの名前を my-nginx
とし、nginx
コンテナのレプリカを 3 つ実行するように指定します。
まず、nginx
イメージをプルして、ローカルで利用可能なことを確認します。
docker pull nginx:latest
次に、サービスを作成します。
docker service create --name my-nginx --replicas 3 nginx:latest
このコマンドは、nginx:latest
イメージを使用して 3 つのレプリカを持つ my-nginx
という名前の新しいサービスを作成します。Docker Swarm は、これらのレプリカを Swarm 内のノードに自動的に分散させます (この場合は、単一のノードのみ)。
サービスが作成され、レプリカが実行されていることを確認するには、サービスを一覧表示できます。
docker service ls
my-nginx
が 3/3 のレプリカが実行されている状態で表示されるはずです。
また、サービスに関連付けられたタスクを調査することもできます。
docker service ps my-nginx
このコマンドは、my-nginx
サービスを構成する個々のタスク (コンテナ)、それらの現在の状態、および実行されているノードを表示します。3 つのタスクが Running
状態で表示されるはずです。