如何从脚本中以非交互方式调用'docker swarm unlock'?
通常,当您运行unlock命令时,您会收到如下的交互式提示:
node $ docker swarm unlock
Please enter unlock key:
我尝试过运行以下内容:
node $ echo "SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567" | docker swarm unlock
这会解锁我的群体,但命令永远不会返回。它只是挂在那里。
从documentation开始,似乎没有任何额外的标志我可以传递给解锁命令。
答案 0 :(得分:0)
我做了更多的调查和测试。我没有正确理解我所看到的问题。
您可以使用如下命令以非交互方式解锁docker swarm节点:
node $ echo "SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567" | docker swarm unlock
其中SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567是解锁密钥。
但是,您需要在群集群集中锁定的所有节点上运行此命令。我错误地认为您只需要在群集中的单个节点上运行unlock命令,这将解锁所有节点。
我的情景如下:
我有一个3节点集群,由以节点模式运行的VMs node-1,node-2和node-2组成。我重启了所有3个虚拟机。然后我在node-1上运行非交互式解锁命令,但命令没有返回。相反,我需要在所有节点上运行unlock命令。
另外我应该指出,#docker swarm解锁'无论您是否以交互方式使用它,都是一样的。当我之前测试了交互式#docker swarm unlock'我一直在使用单节点群集。