扩展集群中的服务


服务部署到 Swarm 后,您可以使用 Docker CLI 来调整服务中容器的数量。在服务中运行的容器称为任务。

  1. 如果您尚未这样做,请打开终端并 ssh 到运行管理器节点的机器。例如,本教程使用名为 manager1 的机器。

  2. 运行以下命令来更改 Swarm 中运行的服务的期望状态

    $ docker service scale <SERVICE-ID>=<NUMBER-OF-TASKS>
    

    例如

    $ docker service scale helloworld=5
    
    helloworld scaled to 5
    
  3. 运行 docker service ps <SERVICE-ID> 查看更新后的任务列表

    $ docker service ps helloworld
    
    NAME                                    IMAGE   NODE      DESIRED STATE  CURRENT STATE
    helloworld.1.8p1vev3fq5zm0mi8g0as41w35  alpine  worker2   Running        Running 7 minutes
    helloworld.2.c7a7tcdq5s0uk3qr88mf8xco6  alpine  worker1   Running        Running 24 seconds
    helloworld.3.6crl09vdcalvtfehfh69ogfb1  alpine  worker1   Running        Running 24 seconds
    helloworld.4.auky6trawmdlcne8ad8phb0f1  alpine  manager1  Running        Running 24 seconds
    helloworld.5.ba19kca06l18zujfwxyc5lkyn  alpine  worker2   Running        Running 24 seconds
    

    您可以看到 Swarm 创建了 4 个新任务以扩展到总共 5 个正在运行的 Alpine Linux 实例。这些任务分布在 Swarm 的三个节点之间。一个在 manager1 上运行。

  4. 运行 docker ps 查看您连接的节点上运行的容器。以下示例显示在 manager1 上运行的任务

    $ docker ps
    
    CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
    528d68040f95        alpine:latest       "ping docker.com"   About a minute ago   Up About a minute                       helloworld.4.auky6trawmdlcne8ad8phb0f1
    

    如果您想查看其他节点上运行的容器,请 ssh 到这些节点并运行 docker ps 命令。

后续步骤

在本教程的此步骤中,您已完成 helloworld 服务。接下来,您将删除该服务