Docker -- resolve "join node timeout" error
在worker节点机器上通过docker swarm join 到 manger node时,报Timeout错误,如下:
Error response from daemon: Timeout was reached before node was joined. The attempt to join the swarm will continue in the background. Use the "docker info" command to see the current swarm status of your node.
在网上搜索了一下,找到了解决方案。我这边是因为 manager 与 worker 时间不同步造成的。
原文链接: https://my.oschina.net/u/3195712/blog/817314
解决方向:
方向一:本地时钟
查看要组成集群的所有机器的本地时钟是否相同(大概相同即可, 差几秒不影响)
输入指令: date
图中,第三个时间不同步
修改第三个服务器的本地时钟:
设置系统时间的操作:格式:date 月日时分年.秒
方向二:主机名 (hostname)
在所有要组成集群的机器上输入:hostname 查看主机名
如果,主机名都为:localhost.localdomain,或者主机名都相同,则需要把所有的主机名修改的不一样,比如可以使用本机ip作为主机名
快速修改主机名的方法:
输入: hostnamectl set-hostname <主机名>
方向三:防火墙
CentOS7的防火墙为 firewalld
最主要的是关闭manager机器的防火墙,其他worker机器的最好也关闭
关闭指令:systemctl stop firewalld.service
然后重启一下docker daemon: systemctl restart docker
worker机器上测试2377端口是否通:
1)在manager节点机器上先执行:
docker swarm init --advertise-addr managerIP
(默认占用2377端口)
用来激活2377端口
2)在worker节点机器上执行:
telnet managerIP 2377
如果端口是通的,则可以进行docker swarm join 来将节点加入集群
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现