Docker命令行参考(40) – docker service update更新服务

  1. Usage:  docker service update [OPTIONS] SERVICE
  2.  
  3. Update a service
  4.  
  5. Options:
  6.       –args string                    Service command args
  7.       –constraint-add value           Add or update placement constraints (default [])
  8.       –constraint-rm value            Remove a constraint (default [])
  9.       –container-label-add value      Add or update container labels (default [])
  10.       –container-label-rm value       Remove a container label by its key (default [])
  11.       –endpoint-mode string           Endpoint mode (vip or dnsrr)
  12.       –env-add value                  Add or update environment variables (default [])
  13.       –env-rm value                   Remove an environment variable (default [])
  14.       –help                           Print usage
  15.       –image string                   Service image tag
  16.       –label-add value                Add or update service labels (default [])
  17.       –label-rm value                 Remove a label by its key (default [])
  18.       –limit-cpu value                Limit CPUs (default 0.000)
  19.       –limit-memory value             Limit Memory (default 0 B)
  20.       –log-driver string              Logging driver for service
  21.       –log-opt value                  Logging driver options (default [])
  22.       –mount-add value                Add or update a mount on a service
  23.       –mount-rm value                 Remove a mount by its target path (default [])
  24.       –name string                    Service name
  25.       –publish-add value              Add or update a published port (default [])
  26.       –publish-rm value               Remove a published port by its target port (default [])
  27.       –replicas value                 Number of tasks (default none)
  28.       –reserve-cpu value              Reserve CPUs (default 0.000)
  29.       –reserve-memory value           Reserve Memory (default 0 B)
  30.       –restart-condition string       Restart when condition is met (none, on-failure, or any)
  31.       –restart-delay value            Delay between restart attempts (default none)
  32.       –restart-max-attempts value     Maximum number of restarts before giving up (default none)
  33.       –restart-window value           Window used to evaluate the restart policy (default none)
  34.       –stop-grace-period value        Time to wait before force killing a container (default none)
  35.       –update-delay duration          Delay between updates
  36.       –update-failure-action string   Action on update failure (pause|continue) (default "pause")
  37.       –update-parallelism uint        Maximum number of tasks updated simultaneously (0 to update all at once) (default 1)
  38.   -u, –user string                    Username or UID
  39.       –with-registry-auth             Send registry authentication details to Swarm agents
  40.   -w, –workdir string                 Working directory inside the container

通过指定的参数描述更新服务。这个命令必须在manager节点执行。这些参数与docker service create命令的参数一样。

示例

更新服务

  1. $ docker service update –limit-cpu 2 redis

添加和删除挂载

使用–mount-add 或 –mount-rm选项添加或删除一个服务的bind-mounts或volumes。

下面的示例创建一个服务并挂载test-data数据卷到/somewhere。下一步是更新服务添加挂载一个other-volume数据卷到/shomewhere-else,最后一步是取消/somewhere挂载点,将会删除test-data数据卷。每个命令返回服务名称。

  • –mount-add接受与service create的–mount选项一样的参数。
  • –mount-rm参数指定的是挂载点的目标路径。
    1. $ docker service create
    2.     –name=myservice
    3.     –mount
    4.       type=volume,source=test-data,target=/somewhere
    5.     nginx:alpine
    6.     myservice
    7.  
    8. myservice
    9.  
    10. $ docker service update
    11.     –mount-add
    12.       type=volume,source=other-volume,target=/somewhere-else
    13.     myservice
    14.  
    15. myservice
    16.  
    17. $ docker service update –mount-rm /somewhere myservice
    18.  
    19. myservice