私は Docker swarm モード初心者で、https://docs.docker.com/engine/swarm/swarm-tutorial のチュートリアルを読んでいて、ノードのドレインに関する章を読んだときに気づきました ( https://docs.docker.com /engine/swarm/swarm-tutorial/drain-node/ ) 両方のワーカー ノードに同じ名前が付けられていることを確認しmoby
ます。
matthew@bunty:~$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
3vkklry19mesmsjrgltj53kap moby Ready Active
biur2a68tze2oykta9klklkeq moby Ready Active
daf8npyma8r0dnmcxu6j491jq * bunty Ready Active Leader
これにより、drain コマンドの発行が失敗します。
matthew@bunty:~$ docker node update --availability drain moby
Error response from daemon: node moby is ambiguous (2 matches found)
ID を使用すると、コマンドが機能します。
Docker swarm: How to manual set node names?を見ました。、しかし、私の環境は異なります。私のマネージャー ノードは hostname の Ubuntu ボックスでbunty
あり、ワーカーは hostname の Windows ボックスと hostnameVADER
の MacBook Pronewt
です。すべて最新バージョンの Docker 1.12.x を実行しています。
bunty
ノード名はそれぞれ、VADER
、 &であると予想していましたnewt
が、代わりにbunty
マネージャーとmoby
両方のワーカーを取得します。
何を与える?ノードに手動で名前を付けるオプションがdocker swarm join
コマンドにないようで、各ワーカーには一意のホスト名があります。