2017-04-06 2 views
0

スクリプトから非対話形式で 'docker swarm unlock'を呼び出す方法はありますか?'docker swarm unlock'を非対話的に呼び出す方法は?

通常は、ロック解除コマンドを実行するときには、次のような対話プロンプトを取得:

node $ docker swarm unlock 
Please enter unlock key: 

を私は次のことを実行してみた:

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

これは私の群れが、コマンドのロックを解除しません戻りません。それだけでそこにハングアップします。

documentationから、私はunlockコマンドに渡すことができる追加のフラグがないようです。

+0

代わりにexpectスクリプトを作成しようとしましたか?ちょうどstdoutを読んでそれにデータを自動的に渡すことを期待していますか? – Dockstar

+0

@Dockstar、この提案に感謝します。私は期待のスクリプトを試していないが、おそらくそれは働いていただろう。それが判明したとき、私は別のエラーがあった。 – mightyroser

答えて

0

さらに調査とテストを行いました。私は見ていた問題を正しく理解していませんでした。

あなた非対話的に次のようなコマンドを使用してドッキングウィンドウの群れノードのロックを解除することができます

SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567がアンロックキーです
node $ echo "SWMKEY-1-g8Kpx6C7xIIaabdcefghMLB5YYaf5OSLL4sA1234567" | docker swarm unlock 

ただし、ロックされたswarmクラスタ内のすべてのノードでこれを実行する必要があります。私は誤って、クラスタ内の単一のノードでunlockコマンドを実行するだけで済み、すべてのノードのロックを解除すると仮定していました。

を私は仮想マシンノード1、ノード2およびノー​​ド2は群れモードで実行から成る3ノードクラスタが次のよう

私のシナリオがありました。 3台のVMをすべて再起動しました。私は非対話型unlockコマンドをnode-1でのみ実行し、コマンドは戻ってこなかった。代わりに、すべてのノードでunlockコマンドを実行する必要があります。

また、「docker swarm unlock」の動作は、対話的に使用しているかどうかにかかわらず同じであることを指摘しておきます。私が以前にインタラクティブな「ドッカーの群れ解除」をテストしたとき、私は単一のノード集団を使っていました。

関連する問題