如何非互动地调用“docker swarm unlock”?

我怎样才能从脚本中非交互地调用“docker swarm unlock”?

正常情况下,当你运行解锁命令,你会得到如下的交互式提示:

node $ docker swarm unlock Please enter unlock key: 

我试过运行以下内容:

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

这不能解锁我的群,但命令永远不会返回。 它只是挂在那里。

从文档看来,没有任何额外的标志可以传递给解锁命令。

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

可以使用类似以下的命令非交互式地解锁Docker群集节点:

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

SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567是解锁密钥。

但是,您需要在群集中所有已locking的节点上运行此操作。 我错误地认为你只需要在集群中的一个节点上运行解锁命令,并解锁所有的节点。

我的情况如下:

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

另外我要指出的是,“docker swarm unlock”的行为是一样的,不pipe你是否交互使用它。 当我以前testing过交互式“docker群解锁”时,我一直在使用单节点群集。