Machine: 来自守护程序的错误响应:rpc 错误:代码 = 13 desc = 连接错误:desc =“传输:远程错误:tls:错误证书”

创建于 2017-04-20  ·  28评论  ·  资料来源: docker/machine

你好呀,

在遵循集群入门指南时,我在加入在 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

最有用的评论

这次它对我有用。 我假设您正在使用docker-machine ls中的 IP 和端口执行 --advertise-addr 。 您必须按照说明使用 PORT 2377。 然后,它似乎工作。

所有28条评论

对此有何更新?

面临同样的问题

请注意,我可以从这两个虚拟机相互 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>

注意:上述两个命令中的IPPORT相同。

2377为我工作!

该教程在关于 --advertise-addr 的注释中解释了这一点

收到关于需要使用 --advertise-addr 的错误?

通过运行 docker-machine ls 复制 myvm1 的 IP 地址,然后再次运行 docker swarm init 命令,使用该 IP 并使用 --advertise-addr 指定端口 2377swarm 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 同步。

此页面是否有帮助?
0 / 5 - 0 等级