私がやろうとしているのは、Docker ManagerとDockerワーカーの両方に、使用できるトークンが事前に選択されているため、 docker ssh
を実行してさらにコマンドを実行する必要がないことです。 ドキュメントは、トークン付きの--swarm-discoveryフラグを使用してそのプロセスをサポートしているようです。
docker run swarm create
次のコマンドで、以下のトークンを使用します。
docker-machine create --swarm-master --swarm --driver virtualbox --swarm-discovery token://b4e72945cb52c1324REDACTED manager2
docker-machine ssh
を実行できますが、 docker node ls
を実行すると、「このノードはスウォームマネージャーではありません。 「dockerswarminit」または「dockerswarmjoin」を使用して、このノードをswarmに接続し、再試行してください。 次に、docker swarminitを実行する必要があります。/swarm manage --tlsverify --tlscacert=/var/lib/boot2docker/ca.pem --tlscert=/var/lib/boot2docker/server.pem --tlskey=/var/lib/boot2docker/server-key.pem -H tcp://0.0.0.0:3376 --strategy spread --advertise 192.168.99.100:3376 token://b4e72945cb52c1324REDACTED
docker-machine create --swarm --driver virtualbox --swarm-discovery "token://b4e72945cb52c1324REDACTED" worker1
を実行しようとすると、群れに自動的に参加しないという同じ問題が発生します... sshを実行してdockerjoinを実行する必要があります。したがって、トークンプロトコルを使用した--swarm-discoveryフラグのポイントはわかりません。
$ docker -v
Docker version 1.12.1, build 6f9534c
$ docker-machine -v
docker-machine version 0.8.1, build 41b3b25
@ ahmetalpbalkan-おそらくこれは別の問題の修正だと思いますか?
@ pc-mreevesうん私の間違い
「クラシックスウォーム」(https://github.com/docker/swarm)と「スウォームモード」(1.12で導入され、エンジンにバンドルされています)を混合しています。
「クラシックスウォーム」を使用するには、 eval $(docker-machine env --swarm manager)
ます。 新しいスウォームモード機能を使用する場合は、vboxノードでinit
およびjoin
コマンドを自分で実行する必要があります-ありがとう
@ nathanleclairedocker -machineを使用してスウォームモードを構成する方法を見つけるのに長い時間がかかりました。 新しいモードはコメントのおかげで十分に単純なので、それは必要ではないようです。
最も参考になるコメント
「クラシックスウォーム」(https://github.com/docker/swarm)と「スウォームモード」(1.12で導入され、エンジンにバンドルされています)を混合しています。
「クラシックスウォーム」を使用するには、
eval $(docker-machine env --swarm manager)
ます。 新しいスウォームモード機能を使用する場合は、vboxノードでinit
およびjoin
コマンドを自分で実行する必要があります-ありがとう