扩展 Swarm 中的服务


在将部署服务到 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 个新任务,将 Alpine Linux 的运行实例总数扩展到 5 个。这些任务分布在 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 服务的操作。接下来,您将删除该服务。

删除服务