1

如何从脚本中以非交互方式调用“docker swarm unlock”?

通常,当您运行解锁命令时,您会收到如下交互式提示:

node $ docker swarm unlock
Please enter unlock key: 

我试过运行以下命令:

node $ echo "SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567" | docker swarm unlock

这确实解锁了我的 swarm,但命令永远不会返回。它只是挂在那里。

文档看来,我没有可以将任何其他标志传递给解锁命令。

4

1 回答 1

0

我做了更多的调查和测试。我没有正确理解我看到的问题。

可以使用如下命令以非交互方式解锁 docker swarm 节点:

node $ echo "SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567" | docker swarm unlock

其中 SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567 是解锁密钥。

但是,您需要在 swarm 集群中所有被锁定的节点上运行它。我错误地假设您只需要在集群中的单个节点上运行解锁命令,这将解锁所有节点。

我的情况如下:

我有一个 3 节点集群,由运行在集群模式下的 VM 节点 1、节点 2 和节点 2 组成。我重新启动了所有 3 个虚拟机。然后我只在 node-1 上运行了非交互式解锁命令,该命令没有返回。相反,我需要在所有节点上运行解锁命令。

另外我应该指出,无论您是否以交互方式使用它,“docker swarm unlock”的行为都是相同的。当我之前测试交互式“docker swarm unlock”时,我一直在使用单节点集群。

于 2017-04-11T21:32:10.250 回答