采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
目前是这样的情况,我有三台机器,manager,work1,work2,其中swarm和work1防火墙都关闭了,work2开启的,service起了两个,分别在manager和work1上,但是在work2上curl 127.0.0.1:8000不通。。
这个问题比较复杂。您可以做这样一个实验。把实验结果告诉我。
清理环境,把部署的service,container都清理掉
把manger,worker1,worker2节点上的防火墙关了
重启manager, worker1,worker2节点上的docker进程
然后部署一个service,看看能否curl访问
我把三台机器的防火墙都关闭了,然后重新进入终端,重启docker 服务,OK了
嗯,这说明什么问题呢?您可以继续研究一下。其实还是防火墙,或者准确的说,是iptables的问题,docker网络严重依赖iptable的rule,但是如果说,我们在docker或者容器已经运行的情况下,重启防火墙,比如firewalld,那还iptable的rule很可能会丢失,导致docker网络出现严重问题。 所以一般建议,特别是centos环境,要不就直接把firewalld关了,如果起了,那么,最好就别再动他了,比如重启之类的。 以上仅供参考哈,这个问题我也没有去深究,你可以在网上搜搜相关资料,比如stackoverflow,还是有一些问答的很值得去看一下。
不同的docker主机之间的通信不是通过防火墙的转发吗,为啥关闭后Ingress网络还是可以使用的
登录后可查看更多问答,登录/注册
无论你是开发、测试还是运维,Docker都是你的必备技能。
1.6k 26
1.6k 18
1.5k 17
1.2k 16
1.4k 16