我理想的配置是一个面向公众的容器,它代理与工作者的连接,然后可以与专用网络内的各种服务进行通信以完成其工作.
eth0 -> load balancer --> 192.168.3.3:80 --> 192.168.3.5:1234 (db) \-> 192.168.3.4:80 / \> 192.168.3.5:80/
如果所有的工作人员都在同一台机器上,我可以用docker run -link完成这个…但是因为它们在不同的机器上,所以这是行不通的.
上面示例中的worker启动时使用与此类似的命令:
docker run -d -p $PRIVATE_IPV4:80:80 myworker
并且数据库启动如下:
docker run -d -p $PRIVATE_IPV4:1234:1234 mydb
从主机我可以很好地与每个容器交谈,但每个容器都不能路由到任何其他容器. I.E. curl http://192.168.3.4可以从主机运行,但不能从主机上运行的容器运行.
在这种情况下负载均衡器是Nginx像这样开始:
docker run -d -p $PUBliC_IPV4:80:80 Nginx
Nginx.conf
upstream app { server 192.168.3.3:80; server 192.168.3.4:80; server 192.168.3.5:80;}...
这似乎是一个非常标准的配置.我究竟做错了什么?
解决方法 您可以尝试在CoreOS之上的Kubernetes等容器管理器中实现您的体系结构.那里有很多指南.这是DockerCon https://www.brighttalk.com/webcast/11427/136165关于集装箱集群管理的演示文稿的演练. 总结以上是内存溢出为你收集整理的linux-networking – 如何设置docker容器以在专用网络上进行通信?全部内容,希望文章能够帮你解决linux-networking – 如何设置docker容器以在专用网络上进行通信?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)