docker swarm 是否在将一个节点排空到其他节点时重新安排服务?

Is docker swarm rearranges the services upon draining a node to other nodes?

我有一个 Docker Swarm Stack。准确地说是三个管理者和两个节点。一个节点(仅在该节点上)上几乎没有正常工作的服务,而且我上面有一个僵尸容器,无法杀死。我想耗尽此节点以防止访问此 "bad" 容器(它正在工作,只是不响应任何命令,它是一个网站容器)并稍后创建一个健康的容器。而且我不确定这些服务是否会重新安排到 "healthy" 节点?

据推测,docker system prune尚未正确完成其工作,现在系统处于锁定模式。

我正在使用 Moby Linux。

$ docker version
Client:
 Version:   17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    c97c6d6
 Built: Wed Dec 27 20:05:03 2017
 OS/Arch:   linux/amd64

Server:
 Engine:
  Version:  17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   c97c6d6
  Built:    Wed Dec 27 20:12:30 2017
  OS/Arch:  linux/amd64
  Experimental: true

UDP1:耗尽节点不会停止任何容器或重新安排服务,至少从一开始就不会。基本上,该节点上的所有服务都会继续运行。这就是我们感兴趣的问题。

UPD2: 重启后开始出现关于'No such image was found...'的错误,重新登录Docker hub即可解决。

这是swarm的原理,同样的Kubernetes,如果一个节点宕机了,只要master存在就应该重新安排所有容器到其他节点的分配。