libnetwork: check DNS loopback with user DNS opts
DNS servers in the loopback address range should always be resolved in the host network namespace when the servers are configured by reading from the host's /etc/resolv.conf. The daemon mistakenly conflated the presence of DNS options (docker run --dns-opt) with user-supplied DNS servers, treating the list of servers loaded from the host as a user- supplied list and attempting to resolve in the container's network namespace. Correct this oversight so that loopback DNS servers are only resolved in the container's network namespace when the user provides the DNS server list, irrespective of other DNS configuration. Signed-off-by: Cory Snider <csnider@mirantis.com>
This commit is contained in:
parent
3ba527d82a
commit
046cc9e776
1 changed files with 1 additions and 1 deletions
|
@ -258,7 +258,7 @@ func (sb *Sandbox) setupDNS() error {
|
|||
// After building the resolv.conf from the user config save the
|
||||
// external resolvers in the sandbox. Note that --dns 127.0.0.x
|
||||
// config refers to the loopback in the container namespace
|
||||
sb.setExternalResolvers(newRC.Content, resolvconf.IPv4, false)
|
||||
sb.setExternalResolvers(newRC.Content, resolvconf.IPv4, len(sb.config.dnsList) == 0)
|
||||
} else {
|
||||
// If the host resolv.conf file has 127.0.0.x container should
|
||||
// use the host resolver for queries. This is supported by the
|
||||
|
|
Loading…
Add table
Reference in a new issue