Não sei se entendi completamente sua pergunta, mas vou tentar responder a essa pergunta.
O Docker e a maioria das ferramentas de conteinerização contam com alguns recursos no nível do kernel que permitem que os programas isolem seus processos e visão em algo que está sendo executado no sistema. Conceitualmente, você está certo; de dentro de um contêiner docker, não tem idéia da existência de quaisquer outros contêineres.
Agora, responda sua pergunta sobre o compartilhamento de recursos. Na minha experiência pessoal, não vi esse exemplo de compartilhamento de memória sobre o qual você fala. Se você tiver 5 contêineres exatos, cada contêiner terá sua própria memória e essa memória não será reduzida, pois você terá contêineres idênticos. Não é assim que funciona. No entanto, você pode comprometer a memória como muitos produtos de virtualização. Normalmente, seus contêineres usarão apenas a quantidade de memória atualmente alocada e não o valor máximo que o contêiner solicitou no início. Tenho certeza de que há uma opção de configuração para isso.