Docker 来自守护程序的错误响应:连接到网络失败,请确保网络选项正确,并检查管理器日志:超过上下文截止日期
我正试图建立一个覆盖网络docker swarm。我在aws上有一些主机,而另一些是运行Ubuntu的笔记本电脑(与aws上的相同)。每个节点都有一个静态公共IP。我创建了一个覆盖网络,如下所示:Docker 来自守护程序的错误响应:连接到网络失败,请确保网络选项正确,并检查管理器日志:超过上下文截止日期,docker,networking,docker-swarm,Docker,Networking,Docker Swarm,我正试图建立一个覆盖网络docker swarm。我在aws上有一些主机,而另一些是运行Ubuntu的笔记本电脑(与aws上的相同)。每个节点都有一个静态公共IP。我创建了一个覆盖网络,如下所示: docker网络创建--驱动程序=覆盖--可连接测试网络 我在一台aws主机上创建了一个swarm网络。其他每个节点都可以加入该群集网络 但是,当我在任何不在aws上的节点上运行docker run-it--name alpine2--network test net alpine时,我会得到错误:d
docker网络创建--驱动程序=覆盖--可连接测试网络
我在一台aws主机上创建了一个swarm网络。其他每个节点都可以加入该群集网络
但是,当我在任何不在aws上的节点上运行docker run-it--name alpine2--network test net alpine
时,我会得到错误:docker:error-response-from daemon:attaching to network failed,请确保您的网络选项正确,并检查管理器日志:上下文截止日期已超过。
但是如果我在任何aws主机上运行相同的程序,那么一切都可以正常工作。如果aws上有一些节点,而其他节点没有,那么在网络/端口方面我还需要做些什么
我已在所有机器上打开swarm联网所需的端口
编辑:在manager节点中列出时,所有节点都标记为“活动”
更新通过打开相应的端口解决了此问题。如果所有节点都是基于Linux的,那么它现在就可以工作了。但是,当我尝试使用Linux(ubuntu)操作系统管理器创建swarm时,mac os机器无法加入swarm。检查节点是否处于耗尽状态:
docker node inspect --format {{.Spec.Availability}} node
如果是,则更新状态:
docker node update --availability active node
解释如下:
决议
当节点处于漏极状态时,您应该
无法分配群集模式资源,如多主机
将网络IP地址覆盖到节点。但是,swarm模式不会
目前在swarm leader之间提供消息传递机制
IP地址管理返回到请求的工作节点
IP地址。因此docker运行失败,超过了上下文截止日期。
内部工程问题上报/292已打开,以提供
在Docker守护进程的未来版本中提供更好的错误消息
检查两台机器上是否都打开了以下端口
- TCP端口
2377
- TCP和UDP端口
7946
- UDP端口
4789
ufw
来允许端口:
ufw允许2377/tcp
我遇到了一个类似的问题,通过确保节点的引擎版本相同,我成功地解决了这个问题
sudo docker node ls
@SwapnilPandey您说过您在打开端口后解决了此问题。但是,如果端口已打开,Docker仍显示此错误,我可以做些什么吗?顺便说一句,我的设置与你的类似。@angheladrian这两台机器都在同一个子网中吗?我未能将两台机器连接到两个不同的子网上,因此放弃了使用docker swarm的想法。@SwapnilPandey如果一个节点在Digital Ocean上,另一个在GCP上怎么办?:)要测试您是否需要这些功能,例如在CentOS上暂时禁用防火墙和selinux。systemctl停止防火墙D;set0;如果您可以使用docker创建容器,那么请重新启用firewazll和selinux并打开端口,并添加所需的异常。