无法离开集群模式

Cannot leave swarm mode

我一直在修补新的 Docker 集群模式。我无法完全回忆起我所做的步骤,但现在我陷入了这样的境地,我的 docker 引擎是一个不存在的 swarm 中的工人:

$ docker info
...
Swarm: active
 NodeID: 1vndsuqa0r3paswufs7eq4po3
 Is Manager: false
 Node Address: 192.168.65.2
...

$ docker swarm leave
Error response from daemon: context deadline exceeded

$ docker version
Client:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:04:48 2016
 OS/Arch:      darwin/amd64
 Experimental: true

Server:
 Version:      1.12.0
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   8eab29e
 Built:        Thu Jul 28 21:04:48 2016
 OS/Arch:      linux/amd64
 Experimental: true

我怎样才能退出蜂群模式?

我终于设法通过将 docker 从 Docker menu > Preferences > Uninstall / Reset > Reset to factory defaults 重置为出厂默认设置来解决此问题(我在 Mac 测试版中使用 Docker)。请注意,此操作还会刷取所有 docker 图像、卷、网络等

我认为这是 1.12.0 中的一个错误,此后已解决(我认为补丁应该包含在 1.12.3 中)。这是 Related Issue.

但是如果问题仍然存在于新版本中,还有一些额外的选择:

# Force quit the cluster

docker swarm leave --force

# Force a new cluster and leave properly

docker swarm init --force-new-cluster
docker swarm leave