加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux-networking – 如何设置docker容器以在专用网络上进行通信

发布时间:2020-12-13 17:10:17 所属栏目:Linux 来源:网络整理
导读:我在rackspace有一个小型集群,私有网络的范围是192.168.3.0/24.我希望我的工作服务能够使用这个网络相互通信,但无法弄清楚如何让docker允许这样做. 我理想的配置是一个面向公众的容器,它代理与工作者的连接,然后可以与专用网络内的各种服务进行通信以完成其
我在rackspace有一个小型集群,私有网络的范围是192.168.3.0/24.我希望我的工作服务能够使用这个网络相互通信,但无法弄清楚如何让docker允许这样做.

我理想的配置是一个面向公众的容器,它代理与工作者的连接,然后可以与专用网络内的各种服务进行通信以完成其工作.

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关于集装箱集群管理的演示文稿的演练.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读