相关疑难解决方法(0)

Docker容器的多个静态IP

我有一个Docker主机,应该允许每个容器有多个静态IP地址.然后,容器内的应用程序应该能够选择将流量发送到远程主机的地址(例如ping -I <source-address> example.com).

想象一下这样的设置:IP地址10.0.0.10 - 10.0.0.19被分配给ContainerA,10.0.0.20 - 10.0.0.29ContainerB等等.ContainerA的地址范围的任何流量都会转发到ContainerA,而传出的流量来自ContainerA可以选择的范围内的地址.这同样适用于ContainerB.


在此输入图像描述


在此输入图像描述


默认--net=bridge模式似乎不支持此功能.我能得到的最接近的是,任何ContainerA地址的传入流量都被正确地转发到容器,但是传出流量始终来自同一个地址.

使用时--net=host,第一个容器将附加到所有可用的IP地址,因此第二个容器将无法打开其IP范围内的套接字.

该命令的--ip选项docker run似乎接近我所需要的,正如本博文中所解释的那样.不幸的是,它似乎不支持每个容器的多个静态IP.

如果更方便,使用CIDR子网而不是IP范围就可以了.

我如何配置Docker来实现这一目标?

networking iptables docker

8
推荐指数
1
解决办法
1067
查看次数

nginx重定向到docker容器

在发布我的问题之前,我想知道是否有可能实现我想要的.

我有,比方说,运行带有nginx和letsencrypt的docker容器的myserver.com.在同一台服务器上还有2个运行网站的docker容器.

现在所有的都被重定向好了,所以www.myserver.com去了docker 1而site2.myserver.com去了docker 2.

我希望通过HTTPS运行所有通信,但这里开始麻烦.所以,我的问题是:使用来自letsencrypt的证书,使用nginx和letsencrypt的docker是否可以连接到另一个docker?对我来说,它似乎是某种中间人"攻击".更多原理图:

浏览到http:// site2.myserver.com - > nginx重定向到https:// site2.myserver.com - >连接到端口80上的容器2(192.168.0.10).或者另一个选项:浏览到http:// site2.myserver.com - > nginx重定向到https:// site2.myserver.com - >连接到具有site2.myserver.com证书的端口443上的容器2(192.168.0.10).

如果无法完成,那么解决方案是什么?将证书复制到docker容器并使它们运行https,以便将http请求重定向到该容器的https端口?

浏览到http:// site2.myserver.com - > nginx转发请求 - >连接到具有site2.myserver.com证书的端口443上的容器2(192.168.0.10).

谢谢,Greggy

nginx url-redirection docker

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

docker ×2

iptables ×1

networking ×1

nginx ×1

url-redirection ×1