代码之家  ›  专栏  ›  技术社区  ›  Nick

如何以全局模式(非复制)重新启动Docker服务?

  •  2
  • Nick  · 技术社区  · 6 年前

    在Docker Swarm模式下,如何重新启动单个全局服务?有可能吗?我知道您可以将复制的服务扩展到零,然后再扩展回1+,但似乎没有任何文档说明如何对全局服务产生相同的效果。

    我正在更新我的SSL证书,所以只想重新启动反向代理,而不是重新启动整个应用程序(通过重新启动 docker

    医生刚刚提到 you cannot scale global services

    scale命令使您能够将一个或多个复制的服务向上或向下扩展到所需的副本数。此命令不能应用于全局模式的服务。

    1 回复  |  直到 6 年前
        1
  •  9
  •   BMitch    6 年前

    您可以强制对服务进行滚动更新,可以使用全局计划或复制 docker service update --force ${service_name} . 下面是一个编写文件的示例:

    version: '3'
    
    services:
      busybox-global:
        image: busybox
        command: tail -f /dev/null
        deploy:
          mode: global
    
      busybox-replicated:
        image: busybox
        command: tail -f /dev/null
        deploy:
          replicas: 2
    

    验证是否已启动:

    $ docker ps
    CONTAINER ID        IMAGE                               COMMAND                  CREATED              STATUS      PORTS                            NAMES
    917aefdc910b        busybox:latest                      "tail -f /dev/null"      50 seconds ago       Up 31 seconds                                       sched_busybox-global.q44zx0s2lvu1fdduk800e5ini.hzn6jnzh7x539timamphzzw8a
    7187fbbde0da        busybox:latest                      "tail -f /dev/null"      About a minute ago   Up 31 seconds                                       sched_busybox-replicated.1.i4nm7lpr1spmf0aorh1dtcqrc
    f04a0062b088        busybox:latest                      "tail -f /dev/null"      About a minute ago   Up 31 seconds                                       sched_busybox-replicated.2.oc6zn0ziqg9wyzofokek8eb24
    
    $ docker service ls
    ID                  NAME                       MODE                REPLICAS            IMAGE     PORTS
    gto0d5a6betb        sched_busybox-global       global              1/1                 busybox:latest 
    yfq5mne0qhtj        sched_busybox-replicated   replicated          2/2                 busybox:latest 
    
    $ docker service ps sched_busybox-global
    ID                  NAME                                             IMAGE               NODE                DESIRED STATE       CURRENT STATE            ERROR               PORTS
    hzn6jnzh7x53        sched_busybox-global.q44zx0s2lvu1fdduk800e5ini   busybox:latest      bmitch-asusr556l    Running           Running 49 seconds ago
    

    $ docker service update --force sched_busybox-global
    sched_busybox-global
    overall progress: 1 out of 1 tasks
    q44zx0s2lvu1: running   [==================================================>]
    verify: Service converged
    
    $ docker service ps sched_busybox-global                                
    ID                  NAME                                                 IMAGE               NODE                DESIRED STATE       CURRENT STATE             ERROR               PORTS
    zcfocrfjvvux        sched_busybox-global.q44zx0s2lvu1fdduk800e5ini       busybox:latest      bmitch-asusr556l    Running             Running 7 seconds ago
    hzn6jnzh7x53         \_ sched_busybox-global.q44zx0s2lvu1fdduk800e5ini   busybox:latest      bmitch-asusr556l    Shutdown            Shutdown 10 seconds ago
    
    $ docker ps -a
    CONTAINER ID        IMAGE                               COMMAND                  CREATED              STATUS                            PORTS                            NAMES
    3c5fe0f79e3d        busybox:latest                      "tail -f /dev/null"      About a minute ago   Up About a minute                                                  sched_busybox-global.q44zx0s2lvu1fdduk800e5ini.zcfocrfjvvuxz6tkge0pn0bq2
    917aefdc910b        busybox:latest                      "tail -f /dev/null"      3 minutes ago        Exited (137) About a minute ago                                    sched_busybox-global.q44zx0s2lvu1fdduk800e5ini.hzn6jnzh7x539timamphzzw8a
    7187fbbde0da        busybox:latest                      "tail -f /dev/null"      3 minutes ago        Up 2 minutes                                                       sched_busybox-replicated.1.i4nm7lpr1spmf0aorh1dtcqrc
    f04a0062b088        busybox:latest                      "tail -f /dev/null"      3 minutes ago        Up 2 minutes                                                       sched_busybox-replicated.2.oc6zn0ziqg9wyzofokek8eb24