やあ、
クラスタのスタートガイドに従っている間、virtualboxで作成されたローカルスウォームに参加しているときに問題に直面しています
使用されているバージョン
docker -v
Docker version 17.03.1-ce, build c6d412e
docker-machine -v
docker-machine version 0.10.0, build 76ed2a6
docker-compose -v
docker-compose version 1.12.0, build b31ff33
vboxmanage -v
5.1.20r114628
これが実行中の完全なコマンドです
docker<strong i="12">@myvm1</strong>:~$ docker swarm init --advertise-addr 192.168.99.103:2376
Swarm initialized: current node (e2nvv6m8fadlcrzayk0ddp14c) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token <token-replaced> \
192.168.99.103:2376
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
docker<strong i="13">@myvm1</strong>:~$ exit
compose $ docker-machine ssh myvm2 "docker swarm join \
> --token <token-replaced> \
> 192.168.99.103:2376"
Error response from daemon: rpc error: code = 13 desc = connection error: desc = "transport: remote error: tls: bad certificate"
exit status 1
これに関する更新はありますか?
同じ問題に直面している
これらの2つのVMから相互にpingを実行できることに注意してください。
同じ問題があります。
docker-machine
を手動でインストールしました。これをcentos7とubuntu16.04で試しました。
Docker version 17.03.1-ce, build c6d412e
docker-machine version 0.10.0, build 76ed2a6
私を助けてください。
私も同じ問題を抱えてる。
今回はうまくいきました。 docker-machine ls
にあるIPとポートで--advertise-addrを実行していると仮定します。 指示に従ってポート2377を使用する必要があります。 その後、それは動作するようです。
@lupulin 、ありがとう、PORT2377を使用したときにうまくいきました
@lupulin @dipuratheesan同じ問題が発生し、ポート2377を使用しても問題は解決しました。
同じ問題があり、2377は機能しているようですが、理由はわかりません。
@tstrijdhorst実際には、開始ドキュメントに、ポート2377がノードを群れに結合するために予約されていると記載されています。
注:-advertise-addrを使用する必要があるというエラーが発生しますか? docker-machine lsを実行してmyvm1のIPアドレスをコピーしてから、そのIPを使用し、ポート2377(swarm結合のポート)を--advertise-addrで指定して、docker swarminitコマンドを再度実行します。 例えば:
docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100:2377"
ええ、ここでも同じです。 ありがとう。
ありがとう!
私のためにも働いた-ありがとう!
コマンド "" docker swarm init .... "の実行中に" --advertise-addr "を使用した場合は、ノードに参加するときにもフラグ--advertise-addrを使用する必要があります。
例えば
ノードをマネージャーとして指名docker swarm init --advertise-addr <ip>:<port>
参加ノード:
docker swarm join --token <token> --advertise-addr <ip>:<port>
注: IPとPORTは、上記の両方のコマンドで同じです。
2377は私のために働いた!
チュートリアルでは、-advertise-addrに関するメモでそのことを説明しました
--advertise-addrを使用する必要があるというエラーが発生しましたか?
docker-machine lsを実行してmyvm1のIPアドレスをコピーしてから、そのIPを使用し、ポート2377 ( swarm joinsのポート)を--advertise-addrで指定して、docker swarminitコマンドを再度実行します。
しかし、それは紛らわしいです。 チュートリアルは正しいですが、Docker群を初期化するコマンドを実行している間、ユーザーには次のように表示されます。
$ docker-machine ssh myvm1 "docker swarm init --advertise-addr 192.168.99.100:2376"
Swarm initialized: current node (xpjllelqsli4xk2m9f8plzzc7) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-2xw6b7rsyn5ou92rejukqvtayar3t9jz68eqd7y0m367psu7vf-dcdk4bd7lhashxx9ki460su7h \
192.168.99.100:2376
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
注:ポート2376
可能であれば、生成されたメッセージが2377と表示されるべきであるとMachineが認識できれば便利です。 しかし、私は、マシンが内部でVirtualBoxによって作成されていることを知っており、それを判断するのは難しいかもしれません。
ポートを2377に変更することでうまくいきました。
docker swarm join --token SWMTKN-1-RANDOMTOKEN 192.168.99.100:2377
2377が機能しました-これを修正するために出力された「テキストのコピー」をdockerで修正できますか?
2377私も働いた
誰でもIPを説明できますか?
同じ問題が発生しました2377が機能しました。 たぶん、Get Startedの文は、わかりやすくするために言い換える必要があります。
同じ問題があり、ポート2377が機能しました。 docker-machine lsはポート2376を示しているので、奇妙です。ここのどこかに間違いなくバグがあります。
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
myvm1 - virtualbox Running tcp://192.168.99.100:2376 v17.06.2-ce
myvm2 - virtualbox Running tcp://192.168.99.101:2376 v17.06.2-ce
ポートを削除します
例:
docker-machine ssh myvm2 "docker swarm join \
>-トークン
> 192.168.99.103:2376 "
2377は群れ管理ポートです。
2376はDockerデーモンポートです。
常に2377を使用するか、空白のままにしてデフォルトにする必要があります
ポート2377の使用は私のために働きました-このフォーラムに感謝します👍🥇
docker swarmの作成後に出力されるメッセージをポート2376から2377に変更するべきではありませんが、そのままにしておく理由はありますか?
ありがとう!
ワーカーをマネージャーノードに参加させているときに、次のエラーが発生します
デーモンからのエラー応答:rpcエラー:コード=使用不可desc =すべてのSubConnsがTransientFailureにあり、最新の接続エラー:接続エラー:desc =トランスポート:認証ハンドシェイクに失敗しました:x509:証明書の有効期限が切れているか、まだ有効ではありません
解決済み:マネージャーとワーカーノード間のNtp同期。
最も参考になるコメント
今回はうまくいきました。
docker-machine ls
にあるIPとポートで--advertise-addrを実行していると仮定します。 指示に従ってポート2377を使用する必要があります。 その後、それは動作するようです。