首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在全局(非复制)模式下重启Docker服务?

如何在全局(非复制)模式下重启Docker服务?
EN

Stack Overflow用户
提问于 2018-10-15 23:44:33
回答 1查看 5.6K关注 0票数 6

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

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

文档只提到了you cannot scale global services

使用scale命令可以将一个或多个复制的服务扩展或缩小到所需的副本数量。此命令不能应用于全局模式的服务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-16 03:30:01

您可以强制滚动更新服务,可以是全局计划的,也可以是使用docker service update --force ${service_name}复制的。下面是一个合成文件的示例:

代码语言:javascript
复制
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

验证它是否已启动:

代码语言:javascript
复制
$ 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

强制滚动更新:

代码语言:javascript
复制
$ 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

如果我强制更新复制的服务,同样也会起作用。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52820339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档