转发域到docker集装箱
我想转发请求 (通过域名)从公共IP到docker集装箱 。 我的networking如下所示:
它应该像这样工作:
first.com – >“第一”容器,172.17.0.2/16
mail.first.com – >“first-mail”容器,172.17.0.3/16
second.com – >“第二”容器,172.17.0.4/16
但是我只有转发端口的经验。 我想我需要一个条件转发依赖于互联网请求的域名信息 。 这样的路由器的东西:
if(request.DomainName == "*.first.com" || request.DomainName == "*.second.com" { forward(request, "10.0.0.10"); }
和“Docker主机”机器类似。
但是我找不到这个转发的例子。 我误解了它应该如何?
如果我们正在谈论域名 – 我们主要讨论的是http \ https协议转发,但是Docker(docker-proxy服务)则是关于处理低层协议 – TCP \ UDP。 这意味着 – 我们需要设置http \ HTTPS代理,这将接近我们的请求到容器。
有一个很好的解决scheme – jwilder的Nginx-Proxy – 完全自动化的基于docker的 nginx-proxy。 看看docker-compose的例子:运行jwilder的容器后,你只需要添加
VIRTUAL_HOST = first.com
到第一个容器的环境variables,并删除http \ https端口转发到主机。
- Docker – 无法从Container中Ping服务器IPv6或外部IPv6地址
- Docker群集模式,内部运行多个具有唯一域名的服务,但每个服务都在端口80上
- nginx映射路由由docker主机,为每个路由,调用一个不同的容器
- docker覆盖networking阻止IP转发
- 如何为多宿主的Docker容器添加(静态)多播路由?
- 多个DockerContainers WebUI在单个IP和端口上
- 有几个相同容器的堆栈:端口已被用作入口端口
- 允许路由到没有NAT的docker 172.17.0.0/16networking?
- 如何使用Windows vitrualbox guesttestingDocker提供的HTML页面?