我在这里学习码头教程,https://docs.docker.com/get-started/part3/
当我在页面教程的末尾执行命令docker swarm leave --force时,我一直得到一个Error response from daemon: context deadline exceeded
每次我执行docker swarm leave --force命令时,终端似乎只是挂起,它不再提供错误消息,但除非我执行CTRL+C,否则它不会返回提示输入任何命令。
链接教程开头的docker swarm init命令在处于这种状态时也没有响应。
只有当我关闭VM实例并重新启动它时,停靠程序群命令才能再次工作。但是,当我再次执行链接中的步骤时,docker swarm leave --force命令也会出现相同的错误
知道它为什么要这么做吗?
我正在虚拟盒中运行Ubuntu18.04.1LTS,使用停靠版本 18.09.0-rc1,构建6e632f7。
我看到了另一个链接Cannot leave swarm mode关于同样的问题,它是2年前的,那里的答案似乎是工作周围或完全完全删除码头,并重新安装,以使它工作。我希望还有别的办法来解决这个问题。
发布于 2020-11-16 11:37:37
对失败管理器有效的不是重新启动整个节点,而是停止对接服务,删除/var/lib/docker/swarm目录,重新启动对接服务,然后读取管理器:
关于经理-不及格(失败的经理):
sudo systemctl stop docker
sudo rm -r /var/lib/docker/swarm
sudo systemctl start docker关于经理-工作(其他,运作中的经理):
docker node demote manager-failing
docker node rm manager-failing
ssh manager-failing $(docker swarm join-token manager | tail -2)发布于 2018-11-09 15:49:48
好吧,我有一些好消息和坏消息给你。
2016-2017年,我在建造大型实验码头群环境时也面临着同样的问题。我们正在构建一个具有dns负载平衡的多区域停靠群集群。这是一个50+节点群集群。
有一次,我们的ceph存储集群崩溃了,并带走了大量的群集节点。当所有节点恢复联机时,我正经历与您描述的相同的问题。
好消息是:
对我起作用的是停止码头服务,重新启动,重新启动码头。集群上运行的所有服务都神奇地重新出现,好像什么都没有发生一样。
坏消息是:
这在大多数节点上都有效。一些蜂群的主人从未恢复过。这些节点,我只是简单地销毁,我只是提出了新的节点,以添加到蜂群。
编辑:我已经挖出了一些用于群恢复的旧脚本。
要恢复失败的群集管理器,您首先应该备份配置并旋转一个新实例。
mkdir /root/Backup
cp -rf /var/lib/docker/swarm /root/Backup
cp /root/Backup
tar -czvf swarm.tar.gz swarm/
scp -r user@new_host:/tmp在新主机上还原配置
cp swarm.tar /var/lib/docker
tar -xvf swarm.tar排出您的工作节点
docker node update -availability drain [node]更新所有正在运行的服务
docker service update --forcehttps://stackoverflow.com/questions/53197008
复制相似问题