我的集群服务器已损坏(Linux系统错误),可惜它只是一个节点。
我读了https://docs.docker.com/v17.09/engine/swarm/admin_guide/#back-up-the-swarm
因此,我尝试备份/var/lib/docker/swarm
并将其还原到新设置的docker服务器上,如下所示:
新的docker守护程序可以在没有任何集群功能的情况下正常运行,但是集群功能无法正常工作:
$ docker service ls
Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.
我认为我需要强制重新初始化群组管理器:
docker swarm init --force-new-cluster
在那之后,每个命令都与群体相关
docker service ls
无响应,使docker daemon挂起。
然后,我尝试从后退文件中提取数据,我发现此https://medium.com/lucjuggery/raft-logs-on-swarm-mode-1351eff1e690似乎很有用。但是我仍然无法恢复秘密。
只能得到类似的东西:
secrets: <
secret_id: "6vtndjswxr4fe9kxjtmmtk6af"
secret_name: "DATABASE_ADMIN_URL"
file: <
name: "_DATABASE_ADMIN_URL"
uid: "0"
gid: "0"
mode: -r--r--r--
>
>
其中不包含有用的数据。
顺便说一句:我不是在黑客服务器,我希望恢复数据,而不是去研究捆绑服务的所有配置。
答案 0 :(得分:1)
今天花了我几个小时才弄清为什么docker daemon之后挂起
docker swarm init --force-new-cluster
我相信官方文档https://docs.docker.com/v17.09/engine/swarm/admin_guide/#restore-from-a-backup
缺少一个步骤 因为我删除了docker-state.json
之后就跑了
docker swarm init --force-new-cluster --advertise-addr <the-server-ip>:2377
一切正常。