【问题标题】:how to get secrets from broken docker swarm如何从破碎的 docker swarm 中获取秘密
【发布时间】:2019-01-05 22:22:27
【问题描述】:

我的swarm服务器坏了(Linux系统错误),可惜只有一个节点。

我读过https://docs.docker.com/v17.09/engine/swarm/admin_guide/#back-up-the-swarm

所以我尝试备份 /var/lib/docker/swarm 并将其恢复到新设置的 docker 服务器上,如下所示:

新的 docker 守护进程在没有任何 swarm 功能的情况下可以正常工作,但是 swarm 功能不能像这样工作:

$ 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.

我认为我需要强制重新初始化 swarm manager:

docker swarm init --force-new-cluster

之后,每个命令都与swarm like相关

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--
        >
      >

其中不包含有用的数据。

顺便说一句:我不是在破解服务器,我希望恢复数据而不是调查捆绑服务的所有配置。

【问题讨论】:

    标签: docker docker-swarm


    【解决方案1】:

    我今天花了几个小时才弄清楚为什么 docker 守护进程会挂起

    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
    

    一切正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-15
      • 2022-12-12
      • 2020-10-15
      • 2020-02-04
      • 1970-01-01
      相关资源
      最近更新 更多