docker节点在重启后,卡在down的状态。

在主节点上尝试inspect该节点,发现状态是:

"Status": {
            "State": "down",
            "Message": "heartbeat failure",
            "Addr": "172.26.100.88"
        }


解决办法


停止问题节点的docker服务

systemctl stop docker


移除文件tasks.db文件

rm -rf /var/lib/docker/swarm/worker/tasks.db


启动docker服务

systemctl start docker


我的方案可能并不一定能解决你的问题,但是我的情况是生效的。我发现一个docker节点任务始终无法调度上去,遂尝试重启该节点,重启完成之后发现该问题节点一直处于down的状态无法恢复。于是采用以上方案,验证有效解决问题。

参考资料:

https://devops.stackexchange.com/questions/5144/how-to-fix-a-heartbeat-failure-in-docker-swarm

https://github.com/moby/moby/issues/34827#issuecomment-457678500