A sua confusão é que nameserver
entradas em /etc/resolv.conf
são consideradas equivalentes (isto é, espelhos, e fornecerão as mesmas respostas, independentemente de qual delas seja solicitada). Se um servidor de nomes responder com "isso não existe", o código de resolução é feito, ele não tenta outros servidores de nomes procurando por uma resposta diferente. O código do resolver está na libc e é muito simples.
A solução mais fácil para consertar isso é executar um servidor de nomes local no Docker ( BIND ou unbound pacotes) que tenha inteligência para saber sobre o espaço de nome público e o "universo alternativo" que é o seu espaço de nome privado, geralmente configurado usando zonas de encaminhamento ou "stub". O Google é seu amigo para configurar isso. Em seguida, tenha apenas uma entrada nameserver
em /etc/resolv.conf
que aponta para 127.0.0.1
.