diff --git a/libnetwork/endpoint.go b/libnetwork/endpoint.go index 55b3a8e1ab..7608dd7457 100644 --- a/libnetwork/endpoint.go +++ b/libnetwork/endpoint.go @@ -477,6 +477,10 @@ func (ep *endpoint) sbJoin(sb *sandbox, options ...EndpointOption) error { ep.Name(), ep.ID(), err) } } + + if sb.resolver != nil { + sb.resolver.FlushExtServers() + } } if !sb.needDefaultGW() { diff --git a/libnetwork/resolver.go b/libnetwork/resolver.go index a54a967770..cff692fd1f 100644 --- a/libnetwork/resolver.go +++ b/libnetwork/resolver.go @@ -158,6 +158,10 @@ func (r *resolver) Start() error { func (r *resolver) FlushExtServers() { for i := 0; i < maxExtDNS; i++ { + if r.extDNSList[i].extConn != nil { + r.extDNSList[i].extConn.Close() + } + r.extDNSList[i].extConn = nil r.extDNSList[i].extOnce = sync.Once{} }