From b85baba2242d5244c55a54935be6b4f81422ccb2 Mon Sep 17 00:00:00 2001 From: Siarhei Rasiukevich Date: Tue, 8 Jan 2019 19:04:09 +0300 Subject: [PATCH] Add checkLoopbackOpts. Fix #38512 Control param checkLoopback depending on sb.config.dnsList * if dnsList contains 127.0.0.1 - HostLoopback will be set to false. Container net namespace will be used to access loopback dns . Fix to https://github.com/moby/moby/issues/38512 Signed-off-by: Siarhei Rasiukevich --- sandbox_dns_unix.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sandbox_dns_unix.go b/sandbox_dns_unix.go index c4da9272e5..9ed9f463ce 100644 --- a/sandbox_dns_unix.go +++ b/sandbox_dns_unix.go @@ -215,7 +215,16 @@ func (sb *sandbox) setupDNS() error { logrus.Infof("/etc/resolv.conf does not exist") } - if len(sb.config.dnsList) > 0 || len(sb.config.dnsSearchList) > 0 || len(sb.config.dnsOptionsList) > 0 { + checkLoopbackOpts := func() bool { + for _, n := range sb.config.dnsList { + if n == "127.0.0.1" { + return true + } + } + return false + } + + if checkLoopbackOpts() { var ( err error dnsList = resolvconf.GetNameservers(currRC.Content, types.IP)