在 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 個新任務,以擴展到總共 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` 服務。接下來,您將刪除該服務