As conexões são provavelmente DNAT para os contêineres. Isso significa que o host agora está agindo como um roteador entre "fora" e os contêineres. netstat não exibirá essas conexões. Você precisará de ferramentas adicionais para os fluxos ausentes.
Uma dessas ferramentas é conntrack , que consulta conntrack sobre conexões rastreadas. Usando este comando com a opção -j :
conntrack -L -j
exibirá apenas conexões NAT, mostrando os fluxos atuais ativos estabelecidos entre os contêineres e o exterior e complementando a saída de netstat .
Se você quiser uma saída semelhante a netstat , tente usar se disponível netstat-nat que mais ou menos depende do mesmo mecanismo.
Um outro método, para executar em um loop, seria consultar o Docker (usando docker diretamente no host) sobre o pid principal de cada contêiner e usar o resultado para acessar a rede do contêiner, para executar uma% usualnetstat . Isso tem a vantagem de exibir determinados estados que não aparecem mais com conntrack (como CLOSE_WAIT , geralmente um sintoma de problemas em um aplicativo).
Dado um contêiner do Docker em execução chamado containername , isso deve obter todas as suas conexões de rede, conforme visto de seu próprio ponto de vista, mesmo que o próprio contêiner não tenha nenhum comando útil para isso:
nsenter --target $(docker inspect --format '{{.State.Pid}}' containername) --net netstat -utn