你好呀,
在遵循集群入门指南时,我在加入在 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
对此有何更新?
面临同样的问题
请注意,我可以从这两个虚拟机相互 ping 通。
我有同样的问题。
我手动安装了docker-machine
,我在centos 7和ubuntu 16.04上都试过这个。
Docker version 17.03.1-ce, build c6d412e
docker-machine version 0.10.0, build 76ed2a6
请帮我。
我也有同样的问题。
这次它对我有用。 我假设您正在使用docker-machine ls
中的 IP 和端口执行 --advertise-addr 。 您必须按照说明使用 PORT 2377。 然后,它似乎工作。
@lupulin ,谢谢,当我使用 PORT 2377 时它对我有用
@lupulin @dipuratheesan我遇到了同样的问题,它也对我使用端口 2377 有效。
有同样的问题,2377 似乎工作,但我不知道为什么。
@tstrijdhorst实际上在入门文档中说端口 2377 保留用于将节点加入集群。
注意:收到关于需要使用 --advertise-addr 的错误? 通过运行 docker-machine ls 复制 myvm1 的 IP 地址,然后再次运行 docker swarm init 命令,使用该 IP 并使用 --advertise-addr 指定端口 2377(swarm joins 的端口)。 例如:
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 地址,然后再次运行 docker swarm init 命令,使用该 IP 并使用 --advertise-addr 指定端口 2377 ( swarm joins的端口)
不过这很令人困惑。 该教程是正确的,但是在运行命令来初始化 docker swarm 时,用户会看到:
$ 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
如果可能的话,如果 Machine 能够意识到生成的消息应该是 2377,那就太好了。 但是,我知道这些机器实际上是由 VirtualBox 创建的,这可能很难确定。
将端口更改为2377对我有用。
docker swarm join --token SWMTKN-1-RANDOMTOKEN 192.168.99.100:2377
2377 工作 - 码头工人可以修复输出的“复制文本”来解决这个问题吗?
2377也为我工作
谁能解释一下ip?
遇到同样的问题 2377 工作。 也许应该改写“入门”中的句子以使其更清晰。
有同样的问题,端口 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 \
> --token
> 192.168.99.103:2376"
2377是swarm管理端口。
2376 是 Docker 守护进程端口。
我们应该始终使用 2377 或将其留空并让它默认
使用端口 2377 对我有用 - 谢谢你的论坛👍🥇
创建 docker swarm 后输出的消息不应该从端口 2376 更改为 2377,是否有理由保持原样?
谢谢!
将工作人员加入管理节点时出现以下错误
来自守护进程的错误响应:rpc 错误:代码 = 不可用 desc = 所有 SubConns 都处于 TransientFailure,最新连接错误:连接错误:desc = 传输:身份验证握手失败:x509:证书已过期或无效
已解决:管理器和工作节点之间的 Ntp 同步。
最有用的评论
这次它对我有用。 我假设您正在使用
docker-machine ls
中的 IP 和端口执行 --advertise-addr 。 您必须按照说明使用 PORT 2377。 然后,它似乎工作。