如何将http访问路由到多个Docker容器

如何将任何域的http访问路由到他们特定的docker容器。 所以,任何请求:

  • web1.mydomain.com是docker容器与id asda912kas

  • web2.mydomain.com是用于docker容器,id:8uada0a9sd

等等

每个docker容器都运行apache,mysql和wordpress或者其他web应用程序。 web1.mydomain.com和web2.mydomain.com是使用相同的公共IP地址(如Apache的虚拟主机)

[对不起我英文很差]

如果你的web容器运行在同一台机器上,你可以使用jwilder / nginx-proxy( https://github.com/jwilder/nginx-proxy

你用端口80映射运行它:

docker run -d -p 80:80 -v /var/run/docker.sock:/tmp/docker.sock jwilder/nginx-proxy 

然后用环境variablesVIRTUAL_HOST运行你的Web容器:

 docker run -d -e VIRTUAL_HOST=web1.mydomain.com image1 docker run -d -e VIRTUAL_HOST=web2.mydomain.com image2 

这适用于小型部署。