Docker Compose在v2中注入链接的容器

在Docker Compose的v1中, /etc/hosts文件使用链接的容器进行更新。 例如

 $ cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.17.0.2 redis redis_1 c381c79fb9c2 romantic_yonath 172.17.0.3 48d2ed7033a1 

但是,在第2版中,这是通过DNS完成的,因此不再有条目。 我可以使用hosts表来引导负载均衡器; 与scale命令配合使用时非常有用。

在容器创build过程中是否有注入这些方法的方法?

Nginx博客有关于NGINX和NGINX Plus使用DNS进行服务发现的文章 。

NGINXcachingDNSlogging,直到下一次重新启动或configuration重新加载,忽略logging的TTL值。

解释你所看到的,重新启动容器后,你可以路由到新的节点。

在variables中设置域名部分有一个在启动时caching的解决方法示例。

 resolver 10.0.0.2 valid=10s; server { location / { set $backend_servers backends.example.com; proxy_pass http://$backend_servers:8080; } } 

当您使用variables在proxy_pass指令中指定域名时,NGINX在TTL到期时重新parsing域名。

这个讨论build议127.0.0.11将是容器内的parsing器的IP。


我在本地使用这个configuration,以确认缩放后反映DNS更改,似乎工作

 resolver 127.0.0.11 valid=5s; server { listen 80; location / { set $application_servers application; proxy_pass http://$application_servers:8080; } }